2013-11-28 106 views
1

我想打一個替換\在字符串\誤差\

Im做這個替換\:

string.replace (/\\/g, '\\\'); 

但它不工作。

例如:「使用\字符的文本」未被替換。

如果我使用

string.replace (/\\/g, 'ZZZ'); 

結果是"Text using the ZZZ character".

+1

' '\\\');'是一個語法錯誤。 – SLaks

+1

這與jQuery完全無關。這是基本的Javascript語法。 –

回答

2

你需要知道你在逃避\本身,並增加額外的\ s到補償。

首先要注意的事情是,你通常需要一個甚至數人,因爲—藉此案爲例—與'\\\'你寫一個\然後逃離收盤',打破了整個代碼行。

所以:

string.replace(/\\/g, '\\\\'); 
//   ^ ^^ 
//    |  | | 
//  one \ to escape | | 
//   in regex | | 
//      | | 
//    one \ to escape in 
//   string, for EACH of your two 
//    new backslashes 
+0

謝謝,完美工作 – user3047204

+0

@ user3047204:不客氣。不要忘記接受! –

0

你錯過\到替代函數的第二個參數,只\\\產生錯誤 試試這個:

var replaced = str.replace(/\\/g, "\\\\"); 
+0

你錯過了'g'。 – SLaks

+0

謝謝,工作完美 – user3047204

+0

很高興幫助你:) @ user3047204 –

0

用這個,而是:

string.replace (/\\/g, "\\\\"); 

你錯過了反斜槓在喲你替換了字符串。
確保在雙引號字符串中始終有偶數個反斜槓。
一個簡單的方法來記住這一點,每一對反斜槓代表一個實際的反斜槓字符,當以這種方式使用時(儘管這不是真正發生的事情)。 :)