替换部分正则表达式匹配

时间:2012-08-24 14:04:02

标签: javascript regex

如何在javascript中替换部分regx匹配。

Ex: fn_eq("col","va  AND l") AND fn_gt("col","v AND a ")

我需要将表达式所使用的字符串 AND 替换为其他字符串,例如 ||

我可以使用此regx与上述表达式匹配:
(\w+\((".*?",".*?")\))\s+(AND)\s+(\w+\((".*?",".*?")\))

如何用表达式(第二个捕获组)替换AND sepreated,剩下的就剩下了。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

不是一个简单的替换为你做的吗?

var string = 'fn_eq("col","va  AND l") AND fn_gt("col","v AND a ")',
    re = /(\w+\((".*?",".*?")\))\s+(AND)\s+(\w+\((".*?",".*?")\))/;
string = string.replace(re, "$1 || $4");

(顺便说一下,||通常表示“或”逻辑运算符,而不是“和”。)

专业提示:如果可能,请避免使用惰性量词。而不是.*?,请使用[^"]*更快。