我试图('用(\'和')替换它 我的尝试很少,因为我对RegExp\')不满意。
我尝试的是myText.replace(/\(\'/g, "(\')");和myText.replace(/\'\)/g, "\')");
我试图('用(\'和')替换它 我的尝试很少,因为我对RegExp\')不满意。
我尝试的是myText.replace(/\(\'/g, "(\')");和myText.replace(/\'\)/g, "\')");
您可以在没有正则表达式的情况下在一行中执行此操作:
myText = myText.split("('").join("(\\'").split("')").join("\\')");
问题不是你的正则表达式,而是你的替换。您需要转义反斜杠,否则它(不必要地)转义':
myText = myText.replace(/\('/g, "(\\'");
myText = myText.replace(/'\)/g, "\\')");
使用一些更高级的技术(即捕获组和前瞻),您可以将它们组合成一个正则表达式:
myText = myText.replace(/(\()'|'(?=\))/g, "$1\\'");
正则表达式匹配('或者'如果它后跟)(实际上不匹配)。同时,我们“捕获”(它是否存在。$1如果被捕获,替换字符串中的 in 会将其放置(在原位,然后简单地写出\'. 后面就不用写了)。因为我们使用了前瞻,所以它从来不是比赛的一部分。