js常用方法使用总结

说明:

1. 在项目中使用一些工具类,公共类是非常有必要的,不仅是后台,前段亦是一样

2. 这里提供我收集的常用方法封装

注意:

1. 字符串的拼接一定使用StringBuffer来拼接,否则容易造成浏览器卡顿或内存溢出。特别是针对一些执行js效率不高的浏览器!!

2. 经常对输入框里内容清空,对textarea,可以直接$("textarea").empty();如果使用$("textarea").html("");也可能会造成浏览器内存溢出!!

Date工具类

/********************** date工具类 ***************/

Date.prototype.format = function(format){

var o = {

"M+" : this.getMonth()+1, //month

"d+" : this.getDate(), //day

"h+" : this.getHours(), //hour

"m+" : this.getMinutes(), //minute

"s+" : this.getSeconds(), //second

"q+" : Math.floor((this.getMonth()+3)/3), //quarter

"S" : this.getMilliseconds() //millisecond

}

if(/(y+)/.test(format)) format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4- RegExp.$1.length));

for(var k in o)if(new RegExp("("+ k +")").test(format))

format = format.replace(RegExp.$1,RegExp.$1.length==1? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));

return format;

};

公共工具类

/********************** 公共工具类 ***************/

var PublicUtil ={

isNotEmpty: function(val){

return !this.isEmpty(val);

},

isEmpty: function(val){

if ((val==null || typeof(val)=="undefined")|| (typeof(val)=="string"&&val==""&&val!="undefined")){

return true;

}else{

return false;

}

},

isDebug: function(){

if(this.isNotEmpty(configDebug)&&configDebug=="true"){

return true;

}else{

return false;

}

},

//去除元素内所有内容 strIds:"#id1,#id2,#id3"

emptyHtml: function(strIds){

try{

var ids = strIds.trim(",").split(",");

$(ids).each(function(){

var obj = $(this.toString());

if(obj.length>0){

$(obj).each(function(){

$(this).html("");

});

}else{

obj.html("");

}

});

}catch(ex){

if(PublicUtil.isDebug()){

throw new Error("js方法:【PublicUtil.emptyHtml(strIds)】,error!");

}

}

},

//去除元素的值 strIds:"#id1,#id2,#id3"

emptyValue: function(strIds){

try{

var ids = strIds.trim(",").split(",");

$(ids).each(function(){

var obj = $(this.toString());

if(obj.length>0){

$(obj).each(function(){

$(this).val("");

});

}else{

obj.val("");

}

});

}catch(ex){

if(PublicUtil.isDebug()){

throw new Error("js方法:【PublicUtil.emptyValue(strIds)】,error!");

}

}

},

//去除Textarea内所有内容 strIds:"#id1,#id2,#id3"

emptyTextarea: function(strIds){

try{

var ids = strIds.trim(",").split(",");

$(ids).each(function(){

var obj = $(this.toString());

if(obj.length>0){

$(obj).each(function(){

$(this).empty();

$(this).val("");

});

}else{

obj.empty();

obj.val("");

}

});

}catch(ex){

if(PublicUtil.isDebug()){

throw new Error("js方法:【PublicUtil.emptyTextarea(strIds)】,error!");

}

}

}

}

String 工具类

/********************** String工具类***************/

//trim去掉字符串两边的指定字符,默去空格

String.prototype.trim = function(tag) {

if (!tag) {

tag = '\\s';

}else {

if (tag == '\\') {

tag = '\\\\';

} else if (tag == ',' || tag == '|' || tag == ';') {

tag = '\\' + tag;

}else {

tag = '\\s';

}

}

eval('var reg=/(^' + tag + '+)|(' + tag + '+$)/g;');

return this.replace(reg, '');

};

//字符串截取后面加入...

String.prototype.interceptString = function(len) {

if (this.length > len) {

return this.substring(0, len) + "...";

} else {

return this;

}

}

//将一个字符串用给定的字符变成数组

String.prototype.toArray = function(tag) {

if (this.indexOf(tag) != -1) {

return this.split(tag);

}else {

if (this != '') {

return [this.toString()];

}else {

return [];

}

}

}

//只留下数字(0123456789)

String.prototype.toNumber= function() {

return this.replace(/\D/g, "");

}

//保留中文

String.prototype.toCN= function() {

var regEx = /[^\u4e00-\u9fa5\uf900-\ufa2d]/g;

return this.replace(regEx, '');

}

//转成int

String.prototype.toInt= function() {

var temp = this.replace(/\D/g, "");

return isNaN(parseInt(temp)) ? this.toString() : parseInt(temp);

}

//是否是以XX开头

String.prototype.startsWith= function(tag){

return this.substring(0, tag.length) == tag;

}

//是否已XX结尾

String.prototype.endWith= function(tag){

return this.substring(this.length - tag.length) == tag;

}

//StringBuffer

var StringBuffer = function() {

this._strs = new Array;

};

StringBuffer.prototype.append = function (str) {

this._strs.push(str);

};

StringBuffer.prototype.toString = function() {

return this._strs.join("");

};

String.prototype.replaceAll = function(s1,s2){

return this.replace(new RegExp(s1,"gm"),s2);

}

 Arry

/********************** Arry ***************/

//根据数据取得再数组中的索引

Array.prototype.getIndex = function(obj){

for (var i = 0; i < this.length; i++) {

if (obj == this[i]) {

return i;

}

}

return -1;

}

//移除数组中的某元素

Array.prototype.remove= function (obj) {

for (var i = 0; i < this.length; i++) {

if (obj == this[i]) {

this.splice(i, 1);

break;

}

}

return this;

}

//判断元素是否在数组中

Array.prototype.contains= function (obj) {

for (var i = 0; i < this.length; i++) {

if (obj == this[i]) {

return true;

}

}

return false;

}

浏览器相关操作

/********************** 浏览器相关操作 ***************/

//进入全屏模式,  判断各种浏览器,找到正确的方法

var launchFullScreen = function (element) {

if(element.requestFullscreen) {

element.requestFullscreen();

} else if(element.mozRequestFullScreen) {

element.mozRequestFullScreen();

} else if(element.webkitRequestFullscreen) {

element.webkitRequestFullscreen();

} else if(element.msRequestFullscreen) {

element.msRequestFullscreen();

}

return true;

}

//退出全屏模式

var exitFullScreen = function () {

if(document.exitFullscreen) {

document.exitFullscreen();

} else if(document.mozCancelFullScreen) {

document.mozCancelFullScreen();

} else if(document.webkitExitFullscreen) {

document.webkitExitFullscreen();

}

return false;

}

//cookie操作

var CookieUtil={

path: "/",

domain: 'demo.j2ee.com',

add: function(name,val){

$.cookie(name, val, {expires: 7, path: this.path, domain: this.domain, secure: true});

},

remove: function(name){

$.cookie(name, null,{path: this.path, domain: this.domain});

},

get: function(name){

$.cookie(name,{path: this.path, domain: this.domain});

}

}

//error

var error={

e_404: function(){

alertMessage("404","未找到改页面!","warning");

},

e_500: function(){

alertMessage("500","服务器内部错误!","error");

},

e_403: function(){

alertMessage("403","权限不足!","warning");

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容

  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,050评论 1 10
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,715评论 2 17
  • Javascript有很多数组的方法,有的人有W3C的API,还可以去MDN上去找,但是我觉得API上说的不全,M...
    顽皮的雪狐七七阅读 4,060评论 0 6
  • 如何控制alert中的换行?\n alert(“p\np”); 请编写一个JavaScript函数 parseQu...
    heyunqiang99阅读 1,083评论 0 6
  • 正式通知你:我不爱你了 郭斯鸣 “你不要我,我就死给你看!”最近网上流传出傻白甜的妹子因为男友提出分手而直播割腕。...
    郭斯鸣阅读 789评论 4 5