$.extend(String.prototype,{ isPositiveInteger: function() { return (new RegExp(/^[1-9]\d*$/).test(this)) },isInteger: function() { return (new RegExp(/^\d+$/).test(this)) },isNumber: function() { return (new RegExp(/^([-]{0,1}(\d+)[\.]+(\d+))|([-]{0,1}(\d+))$/).test(this)) },includeChinese: function() { return (new RegExp(/[\u4E00-\u9FA5]/).test(this)) },trim: function() { return this.replace(/(^\s*)|(\s*$)|\r|\n/g,'') },startsWith: function (pattern) { return this.indexOf(pattern) === 0 },endsWith: function(pattern) { var d = this.length - pattern.length return d >= 0 && this.lastIndexOf(pattern) === d },replaceSuffix: function(index) { return this.replace(/\[[0-9]+\]/,'['+index+']').replace('#index#',index) },replaceSuffix2: function(index) { return this.replace(/\-(i)([0-9]+)$/,'-i'+ index).replace('#index#',trans: function() { return this.replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'"') },encodeTXT: function() { return (this).replaceAll('&','&').replaceAll('<','<').replaceAll('>','>').replaceAll(' ',' ') },replaceAll: function(os,ns) { return this.replace(new RegExp(os,'gm'),ns) },/*替换占位符为对应选择器的值*/ //{^(.|\#)[A-Za-z0-9_-\s]*} replacePlh: function($Box) { $Box = $Box || $(document) return this.replace(/{\/?[^}]*}/g,function($1) { var $input = $Box.find($1.replace(/[{}]+/g,'')) return $input && $input.val() ? $input.val() : $1 }) },replaceMsg: function(holder) { return this.replace(new RegExp('({.*})','g'),holder) },replaceTm: function($data) { if (!$data) return this return this.replace(RegExp('({[A-Za-z_]+[A-Za-z0-9_-]*})',function($1) { return $data[$1.replace(/[{}]+/g,'')] }) },replaceTmById: function(_Box) { var $parent = _Box || $(document) return this.replace(RegExp('({[A-Za-z_]+[A-Za-z0-9_-]*})',function($1) { var $input = $parent.find('#'+ $1.replace(/[{}]+/g,'')) return $input.val() ? $input.val() : $1 }) },isFinishedTm: function() { return !(new RegExp('{\/?[^}]*}').test(this)) },skipChar: function(ch) { if (!this || this.length===0) return '' if (this.charAt(0)===ch) return this.substring(1).skipChar(ch) return this },isValidPwd: function() { return (new RegExp(/^([_]|[a-zA-Z0-9]){6,32}$/).test(this)) },isValidMail: function() { return(new RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(this.trim())) },isSpaces: function() { for (var i = 0; i < this.length; i += 1) { var ch = this.charAt(i) if (ch!=' '&& ch!='\n' && ch!='\t' && ch!='\r') return false } return true },isPhone:function() { return (new RegExp(/(^([0-9]{3,4}[-])?\d{3,8}(-\d{1,6})?$)|(^\([0-9]{3,4}\)\d{3,8}(\(\d{1,6}\))?$)|(^\d{3,8}$)/).test(this)) },isUrl:function() { return (new RegExp(/^[a-zA-z]+:\/\/([a-zA-Z0-9\-\.]+)([-\w .\/?%&=:]*)$/).test(this)) },isExternalUrl:function() { return this.isUrl() && this.indexOf('://'+ document.domain) == -1 });
JS 继承讲解模块连接
http://www.cnblogs.com/sanshi/archive/2009/07/08/1519036.html