原文地址:javascript脚本,正则表达式中包含变量的方法
作者:1907474397
javascript的replace函数可以使用正则表达式来匹配字符串实现替换。
今天遇到的问题是正则表达式出现了变量,以今天的实际情况为例:
/(^'+arr2[i]+'|)|(|'+arr2[i]+'$)/
arr2[i]为数组元素,是变量
str=str.replace(/(^'+arr2[i]+'|)|(|'+arr2[i]+'$)/,'');
使用这种方式无法替换成功,解决办法:
var reg=eval_r('/(^'+arr2[i]+' \|)|( \|'+arr2[i]+'$)/');
str=str.replace(reg,'');
先把正则表达式做为字符串拼接上变量用EVAL转换后再使用。
注意红色标记的部分转义的反斜杆要写成两个,因为EVAL也会进行转义。
今天遇到的问题是正则表达式出现了变量,以今天的实际情况为例:
/(^'+arr2[i]+'|)|(|'+arr2[i]+'$)/
arr2[i]为数组元素,是变量
str=str.replace(/(^'+arr2[i]+'|)|(|'+arr2[i]+'$)/,'');
使用这种方式无法替换成功,解决办法:
var reg=eval_r('/(^'+arr2[i]+' \|)|( \|'+arr2[i]+'$)/');
str=str.replace(reg,'');
先把正则表达式做为字符串拼接上变量用EVAL转换后再使用。
注意红色标记的部分转义的反斜杆要写成两个,因为EVAL也会进行转义。