在项目开发的过程中,常常遇到一些HTML与动态数据组成字符串的东西,写起代码会特别的累。下面我会分享两个小技巧。
第一个是事符串的格式化:
事符格式化
/* ** 事符格式化 */ String.format = function (str) { var args = arguments, re = new RegExp( " %([1- " + args.length + " ]) " , " g " ); return String(str).replace( re, function ($ 1 , $ 2 ) { return args[$ 2 ]; } );};
上面的代码是我从163的前端博客上抄过来的。实际应用还是挺方便的。
把这个代码贴在你的JS里就可以直接使用了。怎么使用?还是给个例子吧。
var temp = " 使用%1代码,去实现%2 " ;alert(String.format(temp, " JS " , " 功能1 " )); // 会提示使用JS代码,去实现功能1 alert(String.format(temp, " PHP " , " 功能2 " )); // 会提示使用PHP代码,去实现功能2
temp相当于一个模板。format函数里,根据参数顺序去模板里的名字。
第二个同样是事符串的格式化,不过我作了小小的变化,虽然性能可能没那么快,不过使用就更为方便一些, 不用去看是哪个位置:
String.formatmodel = function (str,model){ for(var k in model){ var re = new RegExp("{ "+k+"}","g" ); str = str.replace(re,model[k]); } return str;}
这个方法是可以直接传递对象进去。使用例子是:
var temp = " 使用{code}代码,去实现{fun} " ;alert(String.formatmodel(temp,{code: " JS " ,fun: " 功能1 " }));alert(String.formatmodel(temp,{code: " PHP " ,fun: " 功能2 " }));
这两个小技巧希望可以帮助在开发过程中少做一些繁琐的事情。