Fork me on GitHub

带参数的正则匹配

之前正则一般用到的情况都是直接写死的 也就是比如想要代替某一段字符串中的[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);

实现的是一样的效果。

大家看看何种方法好或者不好。

欢迎拍砖。

 

 

 

 

posted @ 2012-12-28 17:05  veSky  Views(1482)  Comments(0Edit  收藏  举报