前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第200天:js---常用string原型扩展

第200天:js---常用string原型扩展

作者头像
半指温柔乐
发布2018-09-11 09:40:46
2.9K0
发布2018-09-11 09:40:46
举报
文章被收录于专栏:前端知识分享前端知识分享

一、常用string原型扩展

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

代码语言:javascript
复制
1 /** 在字符串末尾追加字符串 **/
2 String.prototype.append = function (str) {
3     return this.concat(str);
4 }

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

代码语言:javascript
复制
 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、删除指定索引区间的字符串

代码语言:javascript
复制
 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结尾

代码语言:javascript
复制
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、比较两个字符串是否相等

代码语言:javascript
复制
 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、比较两个字符串是否相等,不区分大小写 

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

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

代码语言:javascript
复制
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、判断字符串是否数字串

代码语言:javascript
复制
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、将字符串反序排列

代码语言:javascript
复制
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、将指定的位置的字符设置为另外指定的字符或字符串

代码语言:javascript
复制
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开头

代码语言:javascript
复制
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、计算长度

代码语言:javascript
复制
 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、去掉首尾空格

代码语言:javascript
复制
1 /** 去掉首尾空格 **/
2 String.prototype.trim = function () {
3     return this.replace(/(^\s*)|(\s*$)/g, "");
4 }

15、测试是否是数字

代码语言:javascript
复制
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、测试是否是整数

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

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

代码语言:javascript
复制
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、合并多个空白为一个空白

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

19、除去左边空白

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

20、除去右边空白

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

21、除去两边空白

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

22、保留数字

代码语言:javascript
复制
1 /** 保留数字 **/ 
2 String.prototype.getNum = function () {
3     return this.replace(/[^d]/g, "");
4 }

23、保留字母

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

24、保留中文

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

25、得到字节长度

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

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

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

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

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

28、删除首尾空格

代码语言:javascript
复制
1 /*** 删除首尾空格 ***/ 
2 String.prototype.Trim = function() { 
3   return this.replace(/(^\s*)|(\s*$)/g, ""); 
4 } 

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

代码语言:javascript
复制
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、检查是否由数字组成

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

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

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

32、检查是否为数

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

33、返回字节数

代码语言:javascript
复制
1 /*** 返回字节数 ***/ 
2 String.prototype.lenb = function() { 
3   return this.replace(/[^\x00-\xff]/g,"**").length; 
4 } 

34、检查是否包含汉字

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

35、简单的email检查

代码语言:javascript
复制
 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、简单的日期检查,成功返回日期对象

代码语言:javascript
复制
 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、检查是否有列表中的字符字符

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

二、系统中js的扩展函数

1、清除两边的空格 

代码语言:javascript
复制
1 // 清除两边的空格  
2     String.prototype.trim = function() {  
3         return this.replace(/(^\s*)|(\s*$)/g, '');  
4     };  

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

代码语言:javascript
复制
1 // 合并多个空白为一个空白  
2     String.prototype.ResetBlank = function() {  
3         var regEx = /\s+/g;  
4         return this.replace(regEx, ' ');  
5     }; 

3、保留数字

代码语言:javascript
复制
1 String.prototype.GetNum = function() {  
2         var regEx = /[^\d]/g;  
3         return this.replace(regEx, '');  
4     };  

4、保留中文

代码语言:javascript
复制
1 // 保留中文  
2     String.prototype.GetCN = function() {  
3         var regEx = /[^\u4e00-\u9fa5\uf900-\ufa2d]/g;  
4         return this.replace(regEx, '');  
5     }; 

5、String转化为Number  

代码语言:javascript
复制
1 // String转化为Number  
2     String.prototype.ToInt = function() {  
3         return isNaN(parseInt(this)) ? this.toString() : parseInt(this);  
4     }; 

6、得到字节长度  

代码语言:javascript
复制
 1 // 得到字节长度  
 2     String.prototype.GetLen = function() {  
 3         var regEx = /^[\u4e00-\u9fa5\uf900-\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、获取文件全名  

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

8、获取文件扩展名

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

9、格式化字符串

代码语言:javascript
复制
 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、数字补零  

代码语言:javascript
复制
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还原  

代码语言:javascript
复制
1 // Unicode还原  
2     Number.prototype.ChrW = function() {  
3         return String.fromCharCode(this);  
4     };  

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

代码语言:javascript
复制
 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、数字数组由大到小排序  

代码语言:javascript
复制
 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、获得数字数组中最大项  

代码语言:javascript
复制
 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、获得数字数组中最小项  

代码语言:javascript
复制
 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、获取当前时间的中文形式  

代码语言:javascript
复制
 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格式化

代码语言:javascript
复制
 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 ? "\u661f\u671f" : "\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、检测是否为空  

代码语言:javascript
复制
 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     };
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-03-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、常用string原型扩展
    • 1、在字符串末尾追加字符串
      • 2、删除指定索引位置的字符,索引无效将不删除任何字符
        • 3、删除指定索引区间的字符串
          • 4、检查字符串是否以subStr结尾
            • 6、比较两个字符串是否相等
              • 7、比较两个字符串是否相等,不区分大小写 
                • 8、将指定的字符串插入到指定的位置后面
                  • 9、判断字符串是否数字串
                    • 10、将字符串反序排列
                      • 11、将指定的位置的字符设置为另外指定的字符或字符串
                        • 12、检查字符串是否以subStr开头
                          • 13、计算长度
                            • 14、去掉首尾空格
                              • 15、测试是否是数字
                                • 16、测试是否是整数
                                  • 17、获取N个相同的字符串
                                    • 18、合并多个空白为一个空白
                                      • 19、除去左边空白
                                        • 20、除去右边空白
                                          • 21、除去两边空白
                                            • 22、保留数字
                                              • 23、保留字母
                                                • 24、保留中文
                                                  • 25、得到字节长度
                                                    • 26、从左截取指定长度的字串
                                                      • 27、从右截取指定长度的字串
                                                        • 28、删除首尾空格
                                                          • 29、统计指定字符出现的次数
                                                            • 30、检查是否由数字组成
                                                              • 31、检查是否由数字字母和下划线组成
                                                                • 32、检查是否为数
                                                                  • 33、返回字节数
                                                                    • 34、检查是否包含汉字
                                                                      • 35、简单的email检查
                                                                        • 36、简单的日期检查,成功返回日期对象
                                                                          • 37、检查是否有列表中的字符字符
                                                                          • 二、系统中js的扩展函数
                                                                            • 1、清除两边的空格 
                                                                              • 2、合并多个空白为一个空白  
                                                                                • 3、保留数字
                                                                                  • 4、保留中文
                                                                                    • 5、String转化为Number  
                                                                                      • 6、得到字节长度  
                                                                                        • 7、获取文件全名  
                                                                                          • 8、获取文件扩展名
                                                                                            • 9、格式化字符串
                                                                                              • 10、数字补零  
                                                                                                • 11、Unicode还原  
                                                                                                  • 12、数字数组由小到大排序 
                                                                                                    • 13、数字数组由大到小排序  
                                                                                                      • 14、获得数字数组中最大项  
                                                                                                        • 15、获得数字数组中最小项  
                                                                                                          • 16、获取当前时间的中文形式  
                                                                                                            • 17、扩展Date格式化
                                                                                                              • 18、检测是否为空  
                                                                                                              领券
                                                                                                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档