2016-08-06 2 views
-1

Как я могу заменить в своей строке \\ на \? Например, я хочу преобразовать RegExp('\\\\b') в RegExp('\\b'). Я пробовал:Javascript заменить «\» на «»

mystring.replace('\\','\''); 
+4

Возможный дубликат [JavaScript обратной косой черты (\) в переменных вызывает ошибку] ​​(http://stackoverflow.com/questions/3903488/javascript-backslash-in-variables-is-cause-an-error) – nicael

+0

Его не дублируют, мне просто нужно его заменить, так или иначе? –

+2

Это дубликат. Прочтите ответ. – nicael

ответ

2

Если вам необходимо заменить все вхождения два слеша подряд в один обратный слеш, можно использовать регулярное выражение с g флагом. Поскольку обратные косые черты являются особыми в регулярных выражениях, вам нужно избегать их (с другой обратной косой чертой). Вы также должны использовать возвращаемое значение replace:

var str = "Here: \\\\ and here \\\\"; 
 
console.log(str); 
 
str = str.replace(/\\\\/g, "\\"); 
 
console.log(str);

+0

мы не можем заменить пустой строкой –

+0

Это просто работает, когда у меня есть «\\\\», если у меня всего 2 слэша, это не сработало /: –

+0

@TiagoCastro: Если у вас есть только две обратные косые черты в строковом литерале, у вас есть ** one ** обратная косая черта в строке, а не две. См. [Этот ответ] (http://stackoverflow.com/a/3903661/157247) по вопросу, на который указал никель. –

Смежные вопросы