Javascript或jQuery - 替换('with(\'和')with \')

时间:2012-10-29 10:44:28

标签: javascript jquery regex

我试图将('(\'')替换为\')我的尝试很少,因为我对 RegExp 。

我尝试的是myText.replace(/\(\'/g, "(\')");myText.replace(/\'\)/g, "\')");

2 个答案:

答案 0 :(得分:2)

您可以在没有正则表达式的情况下在一行中执行此操作:

myText = myText.split("('").join("(\\'").split("')").join("\\')");

答案 1 :(得分:1)

问题不是你的正则表达而是你的替代品。你需要逃避反斜杠,否则它(不必要地)逃脱'

myText = myText.replace(/\('/g, "(\\'");
myText = myText.replace(/'\)/g, "\\')");

使用一些稍微更高级的技术(即捕获组和前瞻),您可以将它们组合成一个正则表达式:

myText = myText.replace(/(\()'|'(?=\))/g, "$1\\'");

正则表达式匹配('',如果它后跟)(实际上没有匹配)。与此同时,如果它存在,我们会“捕获”(。替换字符串中的$1会将(放回原位(如果已捕获),然后只写出\'。无需写回)。因为我们使用了前瞻,所以它从未成为比赛的一部分。