我試圖取代這一('
與(\'
和')
與\')
我嘗試了一些,因爲我對此感到很不舒服正則表達式。Javascript或jQuery的 - 更換(「用(」和‘)與’)
我想什麼myText.replace(/\(\'/g, "(\')");
和myText.replace(/\'\)/g, "\')");
我試圖取代這一('
與(\'
和')
與\')
我嘗試了一些,因爲我對此感到很不舒服正則表達式。Javascript或jQuery的 - 更換(「用(」和‘)與’)
我想什麼myText.replace(/\(\'/g, "(\')");
和myText.replace(/\'\)/g, "\')");
的問題是不是你的正則表達式,但您更換。您需要轉義反斜線,否則(不必要的)逃脫'
:
myText = myText.replace(/\('/g, "(\\'");
myText = myText.replace(/'\)/g, "\\')");
對於一些稍微更先進的技術,你可以將其組合到一個正則表達式(即捕獲組和前瞻):
myText = myText.replace(/(\()'|'(?=\))/g, "$1\\'");
正則表達式匹配('
或'
,如果後面跟着)
(沒有真正匹配)。如果它在那裏,我們同時「捕獲」(
。在替換字符串$1
放(
放回原處,如果被抓獲,然後簡單地寫出\'
。沒有必要寫回)
。因爲我們使用了前瞻,所以它從來不是比賽的一部分。
您可以在同一行做沒有正則表達式:
myText = myText.split("('").join("(\\'").split("')").join("\\')");
第一項建議的工作非常好。這很好。謝啦! – Sriram