string(JavaScript 原型扩展——字符串(String))

JavaScript 原型扩展——字符串(String)

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

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

2、删除指定索引地点的字符, 索引没效将不删除任何字符

/** 删除指定索引地点的字符,索引没效将不删除任何字符 **/ String.prototype.deleteCharAt = function (index) { if (index < 0 || index >= this.length) { return this.valueOf(); } else if (index == 0) { return this.substring(1, this.length); } else if (index == this.length - 1) { return this.substring(0, this.length - 1); } else { return this.substring(0, index) + this.substring(index + 1); } }

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

/** 删除指定索引区间的字符串 **/ String.prototype.deleteString = function (start, end) { if (start == end) { return this.deleteCharAt(start); } else { if (start > end) { var temp = start; start = end; end = temp; } if (start < 0) { start = 0; } if (end > this.length - 1) { end = this.length - 1; } return this.substring(0, start) + this.substring(end +1 , this.length); } }

4、反省字符串对否以subStr开头

/** 反省字符串对否以subStr开头 **/ String.prototype.endWith = function (subStr) { if (subStr.length > this.length) { return false; } else { return (this.lastIndexOf(subStr) == (this.length - subStr.length)) ? true : false; } }

6、比力两个字符串对否相称

/** 比力两个字符串对否相称,也可以直接用 == 举行比力 **/ String.prototype.equal = function (str) { if (this.length != str.length) { return false; } else { for (var i = 0; i < this.length; i++) { if (this.charAt(i) != str.charAt(i)) { return false; } } return true; } }

7、比力两个字符串对否相称,不区分轻重写

/** 比力两个字符串对否相称,不区分轻重写 **/ String.prototype.equalIgnoreCase = function (str) { var temp1 = this.toLowerCase(); var temp2 = str.toLowerCase(); return temp1.equal(temp2); }

8、将指定的字符串插进到指定的地点后方

/** 将指定的字符串插进到指定的地点后方,索引没效将直接追加到字符串的末了 **/ String.prototype.insert = function (ofset, subStr) { if (ofset < 0 || ofset >= this.length - 1) { return this.append(subStr); } return this.substring(0, ofset + 1) + subStr + this.substring(ofset + 1); }

9、推断字符串对否数字串

/** 推断字符串对否数字串 **/ String.prototype.isAllNumber = function () { for (var i = 0; i < this.length; i++) { if (this.charAt(i) < '0' || this.charAt(i) > '9') { return false; } } return true; }

10、将字符串反序分列

/** 将字符串反序分列 **/ String.prototype.reserve = function () { var temp = ""; for (var i = this.length - 1; i >= 0; i--) { temp = temp.concat(this.charAt(i)); } return temp; }

11、将指定的地点的字符设置为别的指定的字符或字符串

/** 将指定的地点的字符设置为别的指定的字符或字符串.索引没效将直接前往不做任何处理 **/ String.prototype.setCharAt = function (index, subStr) { if (index < 0 || index > this.length - 1) { return this.valueOf(); } return this.substring(0, index) + subStr + this.substring(index+1); }

12、反省字符串对否以subStr开头

/** 反省字符串对否以subStr开头 **/ String.prototype.startWith = function (subStr) { if (subStr.length > this.length) { return false; } return (this.indexOf(subStr) == 0) ? true : false; }

13、盘算长度

/** 盘算长度,每个汉字占两个长度,英笔墨符每个占一个长度 **/ String.prototype.charLength = function () { var temp = 0; for (var i = 0; i < this.length; i++) { if (this.charCodeAt(i) > 255) { temp += 2; } else { temp += 1; } } return temp; } String.prototype.charLengthReg = function () { return this.replace(/[^\x00-\xff]/g, "**").length; }

14、去掉首尾空格

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

15、测试对否是数字

/** 测试对否是数字 **/ 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; }

16、测试对否是整数

/** 测试对否是整数 **/ String.prototype.isInt = function () { if (this == "NaN") return false; return this == parseInt(this).toString(); }

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

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

18、兼并多个空缺为一个空缺

/** 兼并多个空缺为一个空缺 **/ String.prototype.resetBlank = function () { return this.replace(/s+/g, " "); }

19、撤除右方空缺

/** 撤除右方空缺 **/ String.prototype.LTrim = function () { return this.replace(/^s+/g, ""); }

20、撤除右方空缺

/** 撤除右方空缺 **/ String.prototype.RTrim = function () { return this.replace(/s+$/g, ""); }

21、撤除两边空缺

/** 撤除两边空缺 **/ String.prototype.trim = function () { return this.replace(/(^s+)|(s+$)/g, ""); }

22、保存数字

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

23、保存字母

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

24、保存中文

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

25、取得字节长度

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

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

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

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

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

28、删除首尾空格

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

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

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

30、反省对否由数字构成

/*** 反省对否由数字构成 ***/ String.prototype.isDigit = function() { var s = this.Trim(); return (s.replace(/\d/g, "").length == 0); }

31、反省对否由数字字母和下划线构成

/*** 反省对否由数字字母和下划线构成 ***/ String.prototype.isAlpha = function() { return (this.replace(/\w/g, "").length == 0); }

32、反省对否为数

/*** 反省对否为数 ***/ String.prototype.isNumber = function() { var s = this.Trim(); return (s.search(/^[+-]?[0-9.]*$/) >= 0); }

33、前往字节数

/*** 前往字节数 ***/ String.prototype.lenb = function() { return this.replace(/[^\x00-\xff]/g,"**").length; }

34、反省对否包含汉字

/*** 反省对否包含汉字 ***/ String.prototype.isInChinese = function() { return (this.length != this.replace(/[^\x00-\xff]/g,"**").length); }

35、简便的email反省

/*** 简便的email反省 ***/ String.prototype.isEmail = function() {  var strr; var mail = this;  var re = /(\w+@\w+\.\w+)(\.{0,1}\w*)(\.{0,1}\w*)/i;  re.exec(mail);  if(RegExp.$3!="" && RegExp.$3!="." && RegExp.$2!=".") strr = RegExp.$1+RegExp.$2+RegExp.$3;  else   if(RegExp.$2!="" && RegExp.$2!=".") strr = RegExp.$1+RegExp.$2;   else  strr = RegExp.$1;  return (strr==mail); }

36、简便的日期反省,告捷前往日期目标

/*** 简便的日期反省,告捷前往日期目标 ***/ String.prototype.isDate = function() { var p; var re1 = /(\d{4})[年./-](\d{1,2})[月./-](\d{1,2})[]?$/; var re2 = /(\d{1,2})[月./-](\d{1,2})[日./-](\d{2})[]?$/; var re3 = /(\d{1,2})[月./-](\d{1,2})[日./-](\d{4})[]?$/; if(re1.test(this)) { p = re1.exec(this); return new Date(p[1],p[2],p[3]); } if(re2.test(this)) { p = re2.exec(this); return new Date(p[3],p[1],p[2]); } if(re3.test(this)) { p = re3.exec(this); return new Date(p[3],p[1],p[2]); } return false; }

37、反省对否有列表中的字符字符

/*** 反省对否有列表中的字符字符 ***/ String.prototype.isInList = function(list) { var re = eval("/["+list+"]/"); return re.test(this); }

38、兼并多个空缺为一个空缺

// 兼并多个空缺为一个空缺 String.prototype.ResetBlank = function() { var regEx = /\s+/g; return this.replace(regEx, ' '); };

39、String转化为Number

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

40、取得字节长度

// 取得字节长度 String.prototype.GetLen = function() { var regEx = /^[\u4e00-\u9fa5\uf900-\ufa2d]+$/; if (regEx.test(this)) { return this.length * 2; } else { var oMatches = this.match(/[\x00-\xff]/g); var oLength = this.length * 2 - oMatches.length; return oLength; } };

41、获取文件全名

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

42、获取文件扩展名

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

43、格式化字符串

String.prototype.Format = function() { if (arguments.length == 0) { return ''; } if (arguments.length == 1) { return arguments[0]; } var reg = /{(\d+)?}/g; var args = arguments; var result = arguments[0].replace(reg, function($0, $1) { return args[parseInt($1) + 1]; }); return result; };

内容底部广告位(手机)
标签:

管理员
草根站长管理员

专注网站优化+网络营销,只做有思想的高价值网站,只提供有担当的营销服务!

上一篇:collect(Collect与gather的区别)
下一篇:返回列表