вот моя строка:
var str = "This is my \string";
Это - мой код:
var replaced = str.replace("/\\/", "\\\\");
Я не могу заставить свой вывод быть:
"This is my \\string"
Я попробовал каждую комбинацию, о которой я могу думать для регулярного выражения и заменяющего значения.
Любая справка ценится!
Проблема в том, что \ в вашей первой строке даже не распознается. Он думает, что обратная косая черта будет отмечать escape-последовательность, но \ s не является escape-символом, поэтому игнорируется. Ваш var str интерпретируется как просто «Это моя строка». Попробуйте str.indexOf ("\\")
- вы найдете -1, так как обратной косой черты нет вообще. Если вы контролируете содержимое str, сделайте то, что говорит Дэвид - добавьте еще один \, чтобы избежать первого.
Я этого не пробовал, но следующее должно работать
var replaced = str.replace((new RegExp("\s"),"\\s");
По сути, вы не хотите заменять "\", вы хотите заменить символ, представленный escape-символом "\ s" последовательность.
К сожалению, вам нужно будет сделать это для каждой буквы алфавита, каждого числа, символа и т. Д., Чтобы охватить все основы
Строка не содержит обратной косой черты, она содержит escape-последовательность \ s
.
var str = "This is my \\string";
И если вам нужно регулярное выражение, у вас должно быть регулярное выражение, а не строка.
var replaced = str.replace(/\\/, "\\\\");