之前正则一般用到的情况都是直接写死的 也就是比如想要代替某一段字符串中的[length]就这样写:
str.replace(/\[ilength]/g,''));
这样。
但是如果需要参数组织正则呢?怎么写?
我总结了一个方法:
如下:
function changeModelToHtml(template,oSource){ for(var i in oSource){ var reg = new RegExp("{"+i+"}","gim"); template = template.replace(reg,oSource[i]); reg = null; } return template; }
template是包含所谓要替换内容的原始一个字符串。
oSource是一个Object对象里面是一群key,value
还有一个方法是我同事整理出来的我也贴出来:
var Source={"sty":"ss","number":1,"name":"jackie"}; var stemplate ="<li class='{sty}'><i>{number}</i>{name}</li>"; console.log(stemplate); var reg=/{(.+?)}/gim; stemplate.replace(reg,function(obj){ stemplate= stemplate.replace(obj,Source[RegExp.$1]); }) ; console.log(stemplate);
实现的是一样的效果。
大家看看何种方法好或者不好。
欢迎拍砖。