字符串低格式函数String.format在字符串连接过程中非常实用。 它有两个好处:
让代码看起来简单易懂并提供文本模板支持
稍后我会通过例子来解释。 首先贴一下String.format的实现代码:
String.format = function(src){ if (arguments.length == 0) return null; var args = Array.prototype.slice.call(arguments, 1); return src.replace(/{(d+)}/g, function(m, i){ return args[i]; }); };
该函数借用自ExtJsjavascript 字符串 格式化,示例代码如下:
String.format = function(src){ if (arguments.length == 0) return null; var args = Array.prototype.slice.call(arguments, 1); return src.replace(/{(d+)}/g, function(m, i){ return args[i]; }); }; var template = "{0}欢迎你在{1}上给{0}留言,交流看法"; var author = "晴枫"; var site = "枫芸志"; var msg = String.format(template, author, site); alert(msg);
如果不使用String.format函数,则上例的等效代码如下:
var template = "{0}欢迎你在{1}上给{0}留言,交流看法"; var author = "晴枫"; var site = "枫芸志"; var msg = "本文作者是" + author + ",欢迎你在" + site + "上给" + author + "留言,交流看法"; alert(msg);
事实上javascript 字符串 格式化,使用 String.format 函数的代码看起来更容易理解; 并且文本模板模板可以方便地替换(例如实现多语言支持)。