2012-07-04 136 views
1

我試圖逃脫引號(和apostrofes和逃逸字符)在J​​avaScript中的文本字符串:逃離報價

var text = 'Escape " and \' and /.'; 
var rx = new RegExp('/([\'"])/g'); 
console.log(text, ' ==> ', text.replace(rx,'//\1'));​​​​​ 

我期望能夠輸出爲Escape /" and /' and //.,而是我得到Escape " and ' and /.

我似乎無法得到這個工作,不知道什麼是錯的。

這裏有一個的jsfiddle:http://jsfiddle.net/hvtgf/

+2

你爲什麼想到'/'?轉義字符是'\\'.. –

+0

此外,請停止使用新的RegExp('/([\''])/ g'); Javascript正則表達式是文字,就像每次你想要做新字符串定義一個字符串 –

+0

@Rob W,因爲對於我保存的格式,我需要'/',並且明確地在替換字符串中設置'/' – Martijn

回答

4

用反斜槓\但不削減/避開裝置。

但是,你的目的,你可以嘗試以下方法:

text.replace(/([/'"])/g, "/$1"); 

DEMO:http://jsfiddle.net/hvtgf/1/

+0

完美!我猜JS網站作爲參考了反向引用語法錯誤。 – Martijn

+0

@Martijn希望它不是W3Schools :) – VisioN