1、题外话,有关概念理解:String.prototype
属性表示 String
原型对象。所有 String
的实例都继承自 String.prototype
. 任何String.prototype上的改变都会影响到所有的 String
实例。
2、上正文,js扩展String.prototype.format字符串拼接的功能,首先是基础功能的改造:
String.prototype.format = function(){
if(arguments.length==0){
return this;
}
for(var s=this, i=0; i<arguments.length; i++){
s = s.replace(new RegExp("\\{"+i+"\\}","g"), arguments[i]);
}
return s;
};
3、然后就是调用方式:
//方式1
var test = '我的{0}是{1}';
var result = test.format('id','城市之光');
//方式2
var test = '我的{name1}是{name2}';
var result = test.format({name1:'id',name2:'城市之光'});
4、就这么简单,附带一个对trim()的扩展
String.prototype.trim = function() {
return this.replace(/(^\s*)|(\s*$)/g, "");
};
String.prototype.ltrim = function() {
return this.replace(/(^\s*)/g, "");
};
String.prototype.rtrim = function() {
return this.replace(/(\s*$)/g, "");
};
//调用方式
var eg1 = $('#id').val().trim();