$.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#', 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_-]*})','g'), 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_-]*})','g'), 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 繼承講解模塊鏈接 html
http://www.cnblogs.com/sanshi/archive/2009/07/08/1519036.html dom