我不知道为什么,但我的正则表达式不起作用......
$a = '_test[value][0]';
$b = $a.replace('/val/g','_');
此外,我正在尝试做一些像以下一样复杂的事情:
$b = $a.replace('/\[(.*)\]/g','_');
任何想法?
答案 0 :(得分:1)
删除正则表达式周围的引号:
$b = $a.replace(/val/g, '_');
答案 1 :(得分:1)
正则表达式不需要引号$b = $a.replace(/val/g,'_');
您使用引号的唯一时间是用jQuery.replace();
例如:$b = $a.replace('replace this','with this');
(假设您的代码是基于$的使用的jQuery)
答案 2 :(得分:0)
有两种方法可以创建您尝试使用的Regexp object:
来自字符串:
var regexp = new Regexp('val', 'g');
使用Regexp文字:
var regexp = /val/g;
请注意,Regexp文字没有任何引号,因此当您使用'/val/g'
替换时,实际上并没有使用正则表达式,您将尝试替换该文字字符串。
所以你只需要删除引号:
$b = $a.replace(/val/g, '_');