zoukankan      html  css  js  c++  java
  • 第200天:js---常用string原型扩展

    一、常用string原型扩展

    1、在字符串末尾追加字符串

    1 /** 在字符串末尾追加字符串 **/
    2 String.prototype.append = function (str) {
    3     return this.concat(str);
    4 }

    2、删除指定索引位置的字符,索引无效将不删除任何字符

     1 /** 删除指定索引位置的字符,索引无效将不删除任何字符 **/
     2 String.prototype.deleteCharAt = function (index) {
     3     if (index < 0 || index >= this.length) {
     4         return this.valueOf();
     5     }
     6     else if (index == 0) {
     7         return this.substring(1, this.length);
     8     }
     9     else if (index == this.length - 1) {
    10         return this.substring(0, this.length - 1);
    11     }
    12     else {
    13         return this.substring(0, index) + this.substring(index + 1);
    14     }
    15 }

    3、删除指定索引区间的字符串

     1 /** 删除指定索引区间的字符串 **/
     2 String.prototype.deleteString = function (start, end) {
     3     if (start == end) {
     4         return this.deleteCharAt(start);
     5     }
     6     else {
     7         if (start > end) {
     8             var temp = start;
     9             start = end;
    10             end = temp;
    11         }
    12         if (start < 0) {
    13             start = 0;
    14         }
    15         if (end > this.length - 1) {
    16             end = this.length - 1;
    17         }
    18         return this.substring(0, start) + this.substring(end +1 , this.length);
    19     }
    20 }

    4、检查字符串是否以subStr结尾

    1 /** 检查字符串是否以subStr结尾 **/
    2 String.prototype.endWith = function (subStr) {
    3     if (subStr.length > this.length) {
    4         return false;
    5     }
    6     else {
    7         return (this.lastIndexOf(subStr) == (this.length - subStr.length)) ? true : false;
    8     }
    9 }

    6、比较两个字符串是否相等

     1 /** 比较两个字符串是否相等,也可以直接用 == 进行比较 **/
     2 String.prototype.equal = function (str) {
     3     if (this.length != str.length) {
     4         return false;
     5     }
     6     else {
     7         for (var i = 0; i < this.length; i++) {
     8             if (this.charAt(i) != str.charAt(i)) {
     9                 return false;
    10             }
    11         }
    12         return true;
    13     }
    14 }

    7、比较两个字符串是否相等,不区分大小写 

    1 /** 比较两个字符串是否相等,不区分大小写 **/
    2 String.prototype.equalIgnoreCase = function (str) {
    3     var temp1 = this.toLowerCase();
    4     var temp2 = str.toLowerCase();
    5     return temp1.equal(temp2);
    6 }

    8、将指定的字符串插入到指定的位置后面

    1 /** 将指定的字符串插入到指定的位置后面,索引无效将直接追加到字符串的末尾 **/
    2 String.prototype.insert = function (ofset, subStr) {
    3     if (ofset < 0 || ofset >= this.length - 1) {
    4         return this.append(subStr);
    5     }
    6     return this.substring(0, ofset + 1) + subStr + this.substring(ofset + 1);
    7 }

    9、判断字符串是否数字串

    1 /** 判断字符串是否数字串 **/
    2 String.prototype.isAllNumber = function () {
    3     for (var i = 0; i < this.length; i++) {
    4         if (this.charAt(i) < '0' || this.charAt(i) > '9') {
    5             return false;
    6         }
    7     }
    8     return true;
    9 }

    10、将字符串反序排列

    1 /** 将字符串反序排列 **/
    2 String.prototype.reserve = function () {
    3     var temp = "";
    4     for (var i = this.length - 1; i >= 0; i--) {
    5         temp = temp.concat(this.charAt(i));
    6     }
    7     return temp;
    8 }

    11、将指定的位置的字符设置为另外指定的字符或字符串

    1 /** 将指定的位置的字符设置为另外指定的字符或字符串.索引无效将直接返回不做任何处理 **/
    2 String.prototype.setCharAt = function (index, subStr) {
    3     if (index < 0 || index > this.length - 1) {
    4         return this.valueOf();
    5     }
    6     return this.substring(0, index) + subStr + this.substring(index+1);
    7 }

    12、检查字符串是否以subStr开头

    1 /** 检查字符串是否以subStr开头 **/
    2 String.prototype.startWith = function (subStr) {
    3     if (subStr.length > this.length) {
    4         return false;
    5     }
    6     return (this.indexOf(subStr) == 0) ? true : false;
    7 }

    13、计算长度

     1 /** 计算长度,每个汉字占两个长度,英文字符每个占一个长度 **/
     2 String.prototype.charLength = function () {
     3     var temp = 0;
     4     for (var i = 0; i < this.length; i++) {
     5         if (this.charCodeAt(i) > 255) {
     6             temp += 2;
     7         }
     8         else {
     9             temp += 1;
    10         }
    11     }
    12     return temp;
    13 }
    14 String.prototype.charLengthReg = function () {
    15     return this.replace(/[^x00-xff]/g, "**").length;
    16 }

    14、去掉首尾空格

    1 /** 去掉首尾空格 **/
    2 String.prototype.trim = function () {
    3     return this.replace(/(^s*)|(s*$)/g, "");
    4 }

    15、测试是否是数字

    1 /** 测试是否是数字 **/
    2 String.prototype.isNumeric = function () {
    3     var tmpFloat = parseFloat(this);
    4     if (isNaN(tmpFloat))
    5         return false;
    6     var tmpLen = this.length - tmpFloat.toString().length;
    7     return tmpFloat + "0".Repeat(tmpLen) == this;
    8 }

    16、测试是否是整数

    1 /** 测试是否是整数 **/ 
    2 String.prototype.isInt = function () {
    3     if (this == "NaN")
    4         return false;
    5     return this == parseInt(this).toString();
    6 }

    17、获取N个相同的字符串

    1 /** 获取N个相同的字符串 **/
    2 String.prototype.Repeat = function (num) {
    3     var tmpArr = [];
    4     for (var i = 0; i < num; i++) tmpArr.push(this);
    5     return tmpArr.join("");
    6 }

    18、合并多个空白为一个空白

    1 /** 合并多个空白为一个空白 **/ 
    2 String.prototype.resetBlank = function () {
    3     return this.replace(/s+/g, " ");
    4 }

    19、除去左边空白

    1 /** 除去左边空白 **/ 
    2 String.prototype.LTrim = function () {
    3     return this.replace(/^s+/g, "");
    4 }

    20、除去右边空白

    1 /** 除去右边空白 **/ 
    2 String.prototype.RTrim = function () {
    3     return this.replace(/s+$/g, "");
    4 }

    21、除去两边空白

    1 /** 除去两边空白 **/ 
    2 String.prototype.trim = function () {
    3     return this.replace(/(^s+)|(s+$)/g, "");
    4 }

    22、保留数字

    1 /** 保留数字 **/ 
    2 String.prototype.getNum = function () {
    3     return this.replace(/[^d]/g, "");
    4 }

    23、保留字母

    1 /** 保留字母 **/ 
    2 String.prototype.getEn = function () {
    3     return this.replace(/[^A-Za-z]/g, "");
    4 }

    24、保留中文

    1 /** 保留中文 **/ 
    2 String.prototype.getCn = function () {
    3     return this.replace(/[^u4e00-u9fa5uf900-ufa2d]/g, "");
    4 }

    25、得到字节长度

    1 /** 得到字节长度 **/ 
    2 String.prototype.getRealLength = function () {
    3     return this.replace(/[^x00-xff]/g, "--").length;
    4 }

    26、从左截取指定长度的字串

    1 /** 从左截取指定长度的字串 **/ 
    2 String.prototype.left = function (n) {
    3     return this.slice(0, n);
    4 }

    27、从右截取指定长度的字串

    1 /** 从右截取指定长度的字串 **/ 
    2 String.prototype.right = function (n) {
    3     return this.slice(this.length - n);
    4 }

    28、删除首尾空格

    1 /*** 删除首尾空格 ***/ 
    2 String.prototype.Trim = function() { 
    3   return this.replace(/(^s*)|(s*$)/g, ""); 
    4 } 

    29、统计指定字符出现的次数

    1 /*** 统计指定字符出现的次数 ***/ 
    2 String.prototype.Occurs = function(ch) { 
    3 //  var re = eval("/[^"+ch+"]/g"); 
    4 //  return this.replace(re, "").length; 
    5   return this.split(ch).length-1; 
    6 } 

    30、检查是否由数字组成

    1 /*** 检查是否由数字组成 ***/ 
    2 String.prototype.isDigit = function() { 
    3   var s = this.Trim(); 
    4   return (s.replace(/d/g, "").length == 0); 
    5 } 

    31、检查是否由数字字母和下划线组成

    1 /*** 检查是否由数字字母和下划线组成 ***/ 
    2 String.prototype.isAlpha = function() { 
    3   return (this.replace(/w/g, "").length == 0); 
    4 } 

    32、检查是否为数

    1 /*** 检查是否为数 ***/ 
    2 String.prototype.isNumber = function() { 
    3   var s = this.Trim(); 
    4   return (s.search(/^[+-]?[0-9.]*$/) >= 0); 
    5 } 

    33、返回字节数

    1 /*** 返回字节数 ***/ 
    2 String.prototype.lenb = function() { 
    3   return this.replace(/[^x00-xff]/g,"**").length; 
    4 } 

    34、检查是否包含汉字

    1 /*** 检查是否包含汉字 ***/ 
    2 String.prototype.isInChinese = function() { 
    3   return (this.length != this.replace(/[^x00-xff]/g,"**").length); 
    4 } 

    35、简单的email检查

     1 /*** 简单的email检查 ***/ 
     2 String.prototype.isEmail = function() { 
     3  var strr; 
     4   var mail = this; 
     5  var re = /(w+@w+.w+)(.{0,1}w*)(.{0,1}w*)/i; 
     6  re.exec(mail); 
     7  if(RegExp.$3!="" && RegExp.$3!="." && RegExp.$2!=".") 
     8     strr = RegExp.$1+RegExp.$2+RegExp.$3; 
     9  else 
    10   if(RegExp.$2!="" && RegExp.$2!=".") 
    11       strr = RegExp.$1+RegExp.$2; 
    12   else 
    13      strr = RegExp.$1; 
    14  return (strr==mail); 
    15 } 

    36、简单的日期检查,成功返回日期对象

     1 /*** 简单的日期检查,成功返回日期对象 ***/ 
     2 String.prototype.isDate = function() { 
     3   var p; 
     4   var re1 = /(d{4})[年./-](d{1,2})[月./-](d{1,2})[日]?$/; 
     5   var re2 = /(d{1,2})[月./-](d{1,2})[日./-](d{2})[年]?$/; 
     6   var re3 = /(d{1,2})[月./-](d{1,2})[日./-](d{4})[年]?$/; 
     7   if(re1.test(this)) { 
     8     p = re1.exec(this); 
     9     return new Date(p[1],p[2],p[3]); 
    10   } 
    11   if(re2.test(this)) { 
    12     p = re2.exec(this); 
    13     return new Date(p[3],p[1],p[2]); 
    14   } 
    15   if(re3.test(this)) { 
    16     p = re3.exec(this); 
    17     return new Date(p[3],p[1],p[2]); 
    18   } 
    19   return false; 
    20 } 

    37、检查是否有列表中的字符字符

    1 /*** 检查是否有列表中的字符字符 ***/ 
    2 String.prototype.isInList = function(list) { 
    3   var re = eval("/["+list+"]/"); 
    4   return re.test(this); 
    5 }

    二、系统中js的扩展函数

    1、清除两边的空格 

    1 // 清除两边的空格  
    2     String.prototype.trim = function() {  
    3         return this.replace(/(^s*)|(s*$)/g, '');  
    4     };  

    2、合并多个空白为一个空白  

    1 // 合并多个空白为一个空白  
    2     String.prototype.ResetBlank = function() {  
    3         var regEx = /s+/g;  
    4         return this.replace(regEx, ' ');  
    5     }; 

    3、保留数字

    1 String.prototype.GetNum = function() {  
    2         var regEx = /[^d]/g;  
    3         return this.replace(regEx, '');  
    4     };  

    4、保留中文

    1 // 保留中文  
    2     String.prototype.GetCN = function() {  
    3         var regEx = /[^u4e00-u9fa5uf900-ufa2d]/g;  
    4         return this.replace(regEx, '');  
    5     }; 

    5、String转化为Number  

    1 // String转化为Number  
    2     String.prototype.ToInt = function() {  
    3         return isNaN(parseInt(this)) ? this.toString() : parseInt(this);  
    4     }; 

    6、得到字节长度  

     1 // 得到字节长度  
     2     String.prototype.GetLen = function() {  
     3         var regEx = /^[u4e00-u9fa5uf900-ufa2d]+$/;  
     4         if (regEx.test(this)) {  
     5             return this.length * 2;  
     6         } else {  
     7             var oMatches = this.match(/[x00-xff]/g);  
     8             var oLength = this.length * 2 - oMatches.length;  
     9             return oLength;  
    10         }  
    11     };  

    7、获取文件全名  

    1 // 获取文件全名  
    2     String.prototype.GetFileName = function() {  
    3         var regEx = /^.*/([^/?]*).*$/;  
    4         return this.replace(regEx, '$1');  
    5     };  

    8、获取文件扩展名

    1 // 获取文件扩展名  
    2     String.prototype.GetExtensionName = function() {  
    3         var regEx = /^.*/[^/]*(.[^.?]*).*$/;  
    4         return this.replace(regEx, '$1');  
    5     };  

    9、格式化字符串

     1 String.Format = function() {  
     2         if (arguments.length == 0) {  
     3             return '';  
     4         }  
     5       
     6         if (arguments.length == 1) {  
     7             return arguments[0];  
     8         }  
     9       
    10         var reg = /{(d+)?}/g;  
    11         var args = arguments;  
    12         var result = arguments[0].replace(reg, function($0, $1) {  
    13             return args[parseInt($1) + 1];  
    14         });  
    15         return result;  
    16     };  

    10、数字补零  

    1 // 数字补零  
    2     Number.prototype.LenWithZero = function(oCount) {  
    3         var strText = this.toString();  
    4         while (strText.length < oCount) {  
    5             strText = '0' + strText;  
    6         }  
    7         return strText;  
    8     };  

    11、Unicode还原  

    1 // Unicode还原  
    2     Number.prototype.ChrW = function() {  
    3         return String.fromCharCode(this);  
    4     };  

    12、数字数组由小到大排序 

     1 // 数字数组由小到大排序  
     2     Array.prototype.Min2Max = function() {  
     3         var oValue;  
     4         for (var i = 0; i < this.length; i++) {  
     5             for (var j = 0; j <= i; j++) {  
     6                 if (this[i] < this[j]) {  
     7                     oValue = this[i];  
     8                     this[i] = this[j];  
     9                     this[j] = oValue;  
    10                 }  
    11             }  
    12         }  
    13         return this;  
    14     };  

    13、数字数组由大到小排序  

     1 // 数字数组由大到小排序  
     2     Array.prototype.Max2Min = function() {  
     3         var oValue;  
     4         for (var i = 0; i < this.length; i++) {  
     5             for (var j = 0; j <= i; j++) {  
     6                 if (this[i] > this[j]) {  
     7                     oValue = this[i];  
     8                     this[i] = this[j];  
     9                     this[j] = oValue;  
    10                 }  
    11             }  
    12         }  
    13         return this;  
    14     };  

    14、获得数字数组中最大项  

     1 // 获得数字数组中最大项  
     2     Array.prototype.GetMax = function() {  
     3         var oValue = 0;  
     4         for (var i = 0; i < this.length; i++) {  
     5             if (this[i] > oValue) {  
     6                 oValue = this[i];  
     7             }  
     8         }  
     9         return oValue;  
    10     };  

    15、获得数字数组中最小项  

     1 // 获得数字数组中最小项  
     2     Array.prototype.GetMin = function() {  
     3         var oValue = 0;  
     4         for (var i = 0; i < this.length; i++) {  
     5             if (this[i] < oValue) {  
     6                 oValue = this[i];  
     7             }  
     8         }  
     9         return oValue;  
    10     };  

    16、获取当前时间的中文形式  

     1 // 获取当前时间的中文形式  
     2     Date.prototype.GetCNDate = function() {  
     3         var oDateText = '';  
     4         oDateText += this.getFullYear().LenWithZero(4) + new Number(24180).ChrW();  
     5         oDateText += this.getMonth().LenWithZero(2) + new Number(26376).ChrW();  
     6         oDateText += this.getDate().LenWithZero(2) + new Number(26085).ChrW();  
     7         oDateText += this.getHours().LenWithZero(2) + new Number(26102).ChrW();  
     8         oDateText += this.getMinutes().LenWithZero(2) + new Number(20998).ChrW();  
     9         oDateText += this.getSeconds().LenWithZero(2) + new Number(31186).ChrW();  
    10         oDateText += new Number(32).ChrW() + new Number(32).ChrW() + new Number(26143).ChrW() + new Number(26399).ChrW() + new String('26085199682010819977222352011620845').substr(this.getDay() * 5, 5).ToInt().ChrW();  
    11         return oDateText;  
    12     };  

    17、扩展Date格式化

     1 //扩展Date格式化  
     2     Date.prototype.Format = function(format) {  
     3         var o = {  
     4             "M+": this.getMonth() + 1, //月份           
     5             "d+": this.getDate(), //
     6             "h+": this.getHours() % 12 == 0 ? 12 : this.getHours() % 12, //小时           
     7             "H+": this.getHours(), //小时           
     8             "m+": this.getMinutes(), //
     9             "s+": this.getSeconds(), //
    10             "q+": Math.floor((this.getMonth() + 3) / 3), //季度           
    11             "S": this.getMilliseconds() //毫秒           
    12         };  
    13         var week = {  
    14             "0": "u65e5",  
    15             "1": "u4e00",  
    16             "2": "u4e8c",  
    17             "3": "u4e09",  
    18             "4": "u56db",  
    19             "5": "u4e94",  
    20             "6": "u516d"  
    21         };  
    22         if (/(y+)/.test(format)) {  
    23             format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));  
    24         }  
    25         if (/(E+)/.test(format)) {  
    26             format = format.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "u661fu671f" : "u5468") : "") + week[this.getDay() + ""]);  
    27         }  
    28         for (var k in o) {  
    29             if (new RegExp("(" + k + ")").test(format)) {  
    30                 format = format.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));  
    31             }  
    32         }  
    33         return format;  
    34     }  
    35     Date.prototype.Diff = function(interval, objDate) {  
    36         //若参数不足或 objDate 不是日期类型則回传 undefined  
    37         if (arguments.length < 2 || objDate.constructor != Date) { return undefined; }  
    38         switch (interval) {  
    39             //计算秒差                                                          
    40             case 's': return parseInt((objDate - this) / 1000);  
    41                 //计算分差  
    42             case 'n': return parseInt((objDate - this) / 60000);  
    43                 //计算時差  
    44             case 'h': return parseInt((objDate - this) / 3600000);  
    45                 //计算日差  
    46             case 'd': return parseInt((objDate - this) / 86400000);  
    47                 //计算周差  
    48             case 'w': return parseInt((objDate - this) / (86400000 * 7));  
    49                 //计算月差  
    50             case 'm': return (objDate.getMonth() + 1) + ((objDate.getFullYear() - this.getFullYear()) * 12) - (this.getMonth() + 1);  
    51                 //计算年差  
    52             case 'y': return objDate.getFullYear() - this.getFullYear();  
    53                 //输入有误  
    54             default: return undefined;  
    55         }  
    56     };  

    18、检测是否为空  

     1 //检测是否为空  
     2     Object.prototype.IsNullOrEmpty = function() {  
     3         var obj = this;  
     4         var flag = false;  
     5         if (obj == null || obj == undefined || typeof (obj) == 'undefined' || obj == '') {  
     6             flag = true;  
     7         } else if (typeof (obj) == 'string') {  
     8             obj = obj.trim();  
     9             if (obj == '') {//为空  
    10                 flag = true;  
    11             } else {//不为空  
    12                 obj = obj.toUpperCase();  
    13                 if (obj == 'NULL' || obj == 'UNDEFINED' || obj == '{}') {  
    14                     flag = true;  
    15                 }  
    16             }  
    17         }  
    18         else {  
    19             flag = false;  
    20         }  
    21         return flag;  
    22     };
  • 相关阅读:
    区间覆盖(线段树)
    差分约束
    二维数组
    P1195 口袋的天空
    dp的刷表法和填表法
    P1284 三角形牧场
    数据库课程设计
    具体解释VB中连接access数据库的几种方法
    android之PackageManager简单介绍
    Oracle fga审计有这几个特性
  • 原文地址:https://www.cnblogs.com/le220/p/8546388.html
Copyright © 2011-2022 走看看