$.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 继承讲解模块连接
http://www.cnblogs.com/sanshi/archive/2009/07/08/1519036.html