javascript replace 问题,正则表达式含变量

varstr1="<ahref='http://www.abcd.{0}.html'>{0},{1}</a>:Var1,Var2";//将两个字段存入数组vararrCo... var str1 = "<a href='http://www.abcd.{0}.html'>{0},{1}</a>:Var1,Var2";
//将两个字段存入数组
var arrColnum = str1.split(":")[1].split(",");
var innerhtml = str1.split(":")[0];
//将{0},{1}替换成字段Var1,Var2对应的值
//data.arrColnum[i]不必考虑
//问题在正则表达式上,这么写把{i}作为了正则表达式
//我想要的是{0},{1},...做为正则表达式,怎么写?谢谢
for (var i=0;i<arrColnum.lenght;i++) {
innerhtml =innerhtml.replace(/{i}/g,data.arrColnum[i]);
}
alert(innerhtml);
innerhtml =innerhtml.replace(/{0}/g,data.arrColnum[i]);
innerhtml =innerhtml.replace(/{1}/g,data.arrColnum[i]);
这么写无问题,均可以得到数据,但是 var str1 里也许有{2},{3},,,{n}
展开
 我来答
cc10k
2010-08-12 · TA获得超过545个赞
知道小有建树答主
回答量:203
采纳率:0%
帮助的人:232万
展开全部
哥哥你非得用正则一个一个匹配吗..本来正则的意义就是让你在不知道具体值的情况下进行匹配的..你要非这么做的话
innerhtml.replace(/{(\d+)}/,function(a,b){return data.arrColnum[b-1];});
你匹配里面的数字,把数字传进arrColnum
lueason
2010-08-12
知道答主
回答量:59
采纳率:0%
帮助的人:26.7万
展开全部
将{}用实体名写在正则里试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
82325435
2010-08-12
知道答主
回答量:42
采纳率:0%
帮助的人:9.2万
展开全部
将{}用实体名写在正则里试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tonylinzhen
2010-08-12 · TA获得超过1368个赞
知道小有建树答主
回答量:997
采纳率:50%
帮助的人:386万
展开全部
<script>
var str1 = "<a href='http://www.abcd.{0}.html'>{0},{1}</a>:Var1,Var2";
var arr=str1.split(":");
var str2=arr[0]+arr[1];
var var_n=arr[2].split(",");
for(var i=0;i<var_n.length;i++)
{
var reg = eval("/\\{"+i+"\\}/ig");
while(reg.test(str2))
str2=str2.replace("{"+i+"}",var_n[i]);

}
alert(str2);
</script>

是这样子吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式