本文介绍如何在JavaScript中为String对象添加Format方法,通过正则表达式实现类似C#的{0}、{1}占位符替换功能,提供完整的扩展代码及调用示例,帮助开发者简化字符串拼接操作。
JavaScript String.Format 实现
核心代码
<script type='text/javascript'>
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;
}
function stringFormat() {
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 name='jb51.net';
var greeting1 = String.format("Hi--1, {0}, '{1}',this is a '{0}'! ", name, 'uuu');
var greeting2 = stringFormat("Hi--2, {0}, '{1}',this is a '{0}'! ", name, 'uuu');
alert(greeting1 + '\r\n' + greeting2);
</script>
将以下代码直接作为字符串对象的扩展方法使用
String.format = function() {
for (var a = arguments[0], b = 1; b < arguments.length; b++) a = a.replace(RegExp("\\{" + (b - 1) + "\\}", "ig"), arguments[b]);
return a
};
调用示例:String.format('Hello. My name is {0} {1}.', firstName, lastName);