2012-10-29 44 views

回答

1

的問題是不是你的正則表達式,但您更換。您需要轉義反斜線,否則(不必要的)逃脫'

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

對於一些稍微更先進的技術,你可以將其組合到一個正則表達式(即捕獲組和前瞻):

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

正則表達式匹配('',如果後面跟着)(沒有真正匹配)。如果它在那裏,我們同時「捕獲」(。在替換字符串$1(放回原處,如果被抓獲,然後簡單地寫出\'。沒有必要寫回)。因爲我們使用了前瞻,所以它從來不是比賽的一部分。

+0

第一項建議的工作非常好。這很好。謝啦! – Sriram

2

您可以在同一行做沒有正則表達式:

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