欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

js实现prototype扩展的方法(字符串,日期,数组扩展)_javascript技巧

程序员文章站 2022-05-07 14:29:24
...
本文实例讲述了js实现prototype扩展的方法。分享给大家供大家参考,具体如下:
String.prototype.isEmpty = function () { return !(/.?[^/s ]+/.test(this)); } //检测字符串是否为空
// 替换字符
String.prototype.reserve = function(type) {
 if (type == 'int') return this.replace(/^/d/g, ''); // 替换字符串中除了数字以外的所有字符
 else if (type == 'en') return this.replace(/[^A-Za-z]/g, ''); // 替换字符串中除了英文以外的所有字符
 else if (type == 'cn') return this.replace(/[^/u4e00-/u9fa5/uf900-/ufa2d]/g, ''); // 替换字符串中除了中文以外的所有字符
 else return this;
}
// 字符串反转
String.prototype.reverse = function() {
 return this.split('').reverse().join('');
}
// 以一个中文算两个字符长度计算字符串的长度
String.prototype.cnLength = function() { return this.replace(/[^/x00-/xff]/g, ' * * ' ).length; }
// 替换字符串中的空格
String.prototype.trim = function(type, char) {
 var type = type ? type.toUpperCase() : '';
 switch (type) {
  case 'B' : // 替换所有欲清除字符,未定义char则默认为替换空格
   return this.replace(char ? new RegExp(char, 'g') : /(/s+| )/g, '');
  case 'O' : // 将两个以上的连续欲清除字符替换为一个,未定义char则默认为替换空格
   return char ? this.replace(new RegExp(char + '{2,}', 'g'), char) : this.replace(/[/s ]{2,}/g, ' ');
  case 'L' : // 替换除左边欲清除字符,未定义char则默认为替换空格
   return this.replace(char ? new RegExp('^(' + char + ') * ', 'g') : /^(/s| ) * /g, '');
  case 'R' : // 替换除右边欲清除字符,未定义char则默认为替换空格
   return this.replace(char ? new RegExp('(' + char + ') * $', 'g') : /(/s| ) * $/g, '');
  default : // 替换除左右两边欲清除字符,未定义char则默认为替换空格
   return this.replace(char ? new RegExp('^(' + char + ') * |(' + char + ') * $', 'g') : /(^/s * | )|( |/s * $)/g, '');
 }
}
// 判断字符串是否是数字
String.prototype.isNumer = function(flag) {
 if (isNaN(this)) {return false;}
 switch (flag) {
  case '+' : return /(^/+?|^/d?)/d * /.?/d+$/.test(this); // 正数
  case '-' : return /^-/d * /.?/d+$/.test(this); // 负数
  case 'i' : return /(^-?|^/+?|/d)/d+$/.test(this); // 整数
  case '+i' : return /(^/d+$)|(^/+?/d+$)/.test(this); // 正整数
  case '-i' : return /^-/d+$/.test(this); // 负整数
  case 'f' : return /(^-?|^/+?|^/d?)/d * /./d+$/.test(this); // 浮点数
  case '+f' : return /(^/+?|^/d?)/d * /./d+$/.test(this); // 正浮点数
  case '-f' : return /^-/d * /./d$/.test(this); // 负浮点数
  default : return true; // 缺省
 }
}
// 仿PHP的str_pad
String.prototype.pad = function (input, length, type) {
 if (!input) return this;
 if (!length || length  0}) 判断是否数组中所有的元素都大于0
Array.prototype.all = function(c) {
 for(var i = 0; i  0) {
    count++;
    if (count == limit) break;
   }
  }
 }
 return this;
}
// 移除数组中重复的元素
Array.prototype.unique = function() {
 var arr = tmp = [], i, len = this.length;
 if (len 

更多关于JavaScript扩展相关内容感兴趣的读者可查看本站专题:《JavaScript扩展技巧总结

希望本文所述对大家JavaScript程序设计有所帮助。