①自己封装的一个方法String.format
String.format = function() {
var s = arguments[0];
for (var i = 0; i < arguments.length - 1; i++) {
var reg = new RegExp("\\{" + i + "\\}", "gm");
s = s.replace(reg, arguments[i + 1]);
}
return s;
}
例子:
<script>
String.format = function() {
var s = arguments[0];
for (var i = 0; i < arguments.length - 1; i++) {
var reg = new RegExp("\\{" + i + "\\}", "gm");
s = s.replace(reg, arguments[i + 1]);
}
return s;
}
var str = "运动方面我喜欢{0},个人爱好是{1}";
alert(String.format(str,"篮球","编程"));
</script>
结果:弹出dialog,运动方面我喜欢篮球,个人爱好是编程
上述方法中的String不能随意修改,因为其是一个JS对象。相信学过JS编程都知道,对象.方法名(函数名)调用模式的补课随意改变,与像Java、C#等语言的调用方式是一样的。
②当然你也可以写一个自己的JS对象,例如:
Utility.js
(function(){
var Utility = function () {
if (this == window) {
return new Utility();
}
Utility.fn = Utility.prototype;
Utility.fn.Format = function(){
var s = arguments[0];
for (var i = 0; i < arguments.length - 1; i++) {
var reg = new RegExp("\\{" + i + "\\}", "gm");
s = s.replace(reg, arguments[i + 1]);
}
return s;
}
}
window.Utility = Utility;
})()
调用例子如下:
<script src="Utility.js"></script>
<script>
var str = "运动方面我喜欢{0},个人爱好是{1}";
alert(new Utility().Format(str,"篮球","编程"));
</script>
结果跟上述一样。
③当然Utility.js写法还有一种
var Utility = new function(){
this.Format = function(){
var s = arguments[0];
for (var i = 0; i < arguments.length - 1; i++) {
var reg = new RegExp("\\{" + i + "\\}", "gm");
s = s.replace(reg, arguments[i + 1]);
}
return s;
}
}
调用例子如下:
<script src="Utility.js"></script>
<script>
var str = "运动方面我喜欢{0},个人爱好是{1}";
alert(Utility.Format(str,"篮球","编程"));
</script>
结果跟上述一样。