js-李大哥总结的js

/*
 该程序定义对已有对象的扩展
 */
Array.prototype.foreach = function(lpfun) {for (i = 0; i < this.length; i++){if(this[i]!='') {lpfun(this[i])}}}
Array.prototype.foreachindex = function(lpfun) {for (i = 0; i < this.length; i++){if(this[i]!='') {lpfun(i,this[i])}}}
Array.prototype.Add=function(value){this.push(value)}
Array.prototype.foreachdic=function(lpfun){dic=this;for(key in dic){lpfun(dic[key])}}
Array.prototype.del = function(n){if (n < 0)return this;else return this.slice(0, n).concat(this.slice(n + 1, this.length));}
String.prototype.foreach=function(strsplit,lpfun){data=this.split(strsplit);for(i=0;i<data.length;i++){if(data[i]!=''){lpfun(i,new String(data[i]))}}}
String.prototype.toCSV=function(splitcell,splitrow,Fields,priindex){
        data=this.split(splitrow);if(Fields==undefined){Fields=data[0].split(splitcell);data.del(0)}        
        if(priindex==undefined)priindex=-1;if (priindex>=Fields.length)priindex=-1;
        var ret=[]
        for(i=0;i<data.length;i++){
            rs=data[i].split(splitcell);record=[];
            for(j=0;j<rs.length;j++){record[Fields[j]]=rs[j]}
            if(priindex>=0) {ret[record[Fields[priindex]]]=record}
            else ret[priindex]=record
        }
        return ret
    }
//是否是正确的IP地址
String.prototype.isIP = function() {
        var reSpaceCheck = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
        if (reSpaceCheck.test(this)) {
            this.match(reSpaceCheck);
            if (RegExp.$1 <= 255 && RegExp.$1 >= 0 && RegExp.$2 <= 255 && RegExp.$2 >= 0 && RegExp.$3 <= 255 && RegExp.$3 >= 0 && RegExp.$4 <= 255 && RegExp.$4 >= 0) return true;
            else return false;
        } else return false;
    }
//是否是正确的长日期
String.prototype.isLongDate = function() {
        var r = this.replace(/(^\s*)|(\s*$)/g, "").match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/);
        if (r == null) return false;
        var d = new Date(r[1], r[3] - 1, r[4], r[5], r[6], r[7]);
        return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4] && d.getHours() == r[5] && d.getMinutes() == r[6] && d.getSeconds() == r[7]);
    }
//是否是正确的短日期
String.prototype.isShortDate = function() {
        var r = this.replace(/(^\s*)|(\s*$)/g, "").match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
        if (r == null) return false;
        var d = new Date(r[1], r[3] - 1, r[4]);
        return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4]);
    }
//是否是正确的日期
String.prototype.isDate = function() {return this.isLongDate() || this.isShortDate();}
//是否是手机
String.prototype.isMobile = function() {return /^0{0,1}13[0-9]{9}$/.test(this);}
//是否是邮件
String.prototype.isEmail = function() {return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(this);}
//获取字符数组 
String.prototype.toCharArray = function() {return this.split("");}
//获取N个相同的字符串 
String.prototype.repeat = function(num) {
    var tmpArr = [];
    for ( var i = 0; i < num; i++)
        tmpArr.push(this);
    return tmpArr.join("");
}
//逆序 
String.prototype.reverse = function() {return this.split("").reverse().join("");}
//测试是否是数字 
String.prototype.isNumeric = function() {
    var tmpFloat = parseFloat(this);
    if (isNaN(tmpFloat))
        return false;
    var tmpLen = this.length - tmpFloat.toString().length;
    return tmpFloat + "0".Repeat(tmpLen) == this;
}
//测试是否是整数 
String.prototype.isInt = function() {if (this == "NaN")return false;return this == parseInt(this).toString();}
// 合并多个空白为一个空白 
String.prototype.resetBlank = function() {return this.replace(/s+/g, " ");}
// 除去左边空白 
String.prototype.LTrim = function() {return this.replace(/^s+/g, "");}
// 除去右边空白 
String.prototype.RTrim = function() {return this.replace(/s+$/g, "");}
// 除去两边空白 
String.prototype.trim = function() {return this.replace(/(^s+)|(s+$)/g, "");}
// 保留数字 
String.prototype.getNum = function() {return this.replace(/[^d]/g, "");}
// 保留字母 
String.prototype.getEn = function() {return this.replace(/[^A-Za-z]/g, "");}
// 保留中文 
String.prototype.getCn = function() {return this.replace(/[^u4e00-u9fa5uf900-ufa2d]/g, "");}
// 得到字节长度 
String.prototype.getRealLength = function() {return this.replace(/[^x00-xff]/g, "--").length;}
// 从左截取指定长度的字串 
String.prototype.left = function(n) {return this.slice(0, n);}
// 从右截取指定长度的字串 
String.prototype.right = function(n) {return this.slice(this.length - n);}
// HTML编码 
String.prototype.HTMLEncode = function() {
    var re = this;
    var q1 = [ /x26/g, /x3C/g, /x3E/g, /x20/g ];
    var q2 = [ "&", "<", ">", " " ];
    for ( var i = 0; i < q1.length; i++)
        re = re.replace(q1[i], q2[i]);
    return re;
}
// Unicode转化 
String.prototype.ascW = function() {
    var strText = "";
    for ( var i = 0; i < this.length; i++)
        strText += "&#" + this.charCodeAt(i) + ";";
    return strText;
}
String.prototype.foreach=function(strsplit,lpfun){data=this.split(strsplit);for(i=0;i<data.length;i++){if(data[i]!=''){lpfun(i,new String(data[i]))}}}
String.prototype.toJson=function(){return eval('(' + this + ')');}
String.prototype.toCSV=function(splitcell,splitrow,Fields,priindex){
        data=this.split(splitrow);if(Fields==undefined){Fields=data[0].split(splitcell);data.del(0)}        
        if(priindex==undefined)priindex=-1;if (priindex>=Fields.length)priindex=-1;
        var ret=[]
        for(i=0;i<data.length;i++){
            rs=data[i].split(splitcell);record=[];
            for(j=0;j<rs.length;j++){record[Fields[j]]=rs[j]}
            if(priindex>=0) {ret[record[Fields[priindex]]]=record}
            else ret[priindex]=record
        }
        return ret
    }
//是否是正确的IP地址
String.prototype.isIP = function() {
        var reSpaceCheck = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
        if (reSpaceCheck.test(this)) {
            this.match(reSpaceCheck);
            if (RegExp.$1 <= 255 && RegExp.$1 >= 0 && RegExp.$2 <= 255 && RegExp.$2 >= 0 && RegExp.$3 <= 255 && RegExp.$3 >= 0 && RegExp.$4 <= 255 && RegExp.$4 >= 0) return true;
            else return false;
        } else return false;
    }
    //是否是正确的长日期
String.prototype.isLongDate = function() {
        var r = this.replace(/(^\s*)|(\s*$)/g, "").match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/);
        if (r == null) return false;
        var d = new Date(r[1], r[3] - 1, r[4], r[5], r[6], r[7]);
        return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4] && d.getHours() == r[5] && d.getMinutes() == r[6] && d.getSeconds() == r[7]);
    }
    //是否是正确的短日期
String.prototype.isShortDate = function() {
        var r = this.replace(/(^\s*)|(\s*$)/g, "").match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
        if (r == null) return false;
        var d = new Date(r[1], r[3] - 1, r[4]);
        return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4]);
    }
    //是否是正确的日期
String.prototype.isDate = function() {return this.isLongDate() || this.isShortDate();}
    //是否是手机
String.prototype.isMobile = function() {return /^0{0,1}13[0-9]{9}$/.test(this);}
    //是否是邮件
String.prototype.isEmail = function() {return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(this);}

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

推荐阅读更多精彩内容