Jquery - символ обратной косой черты - PullRequest
5 голосов
/ 01 декабря 2010

У меня проблема при попытке заменить символ обратной косой черты из строки:

var g = myReadString;
g = g.replace("\", "\\\\");

выдает ошибку нераспознанного символа.

Как простой \ может бытьзаменить на четыре \\\\?

Буду признателен за любую помощь, спасибо.Панды

Ответы [ 4 ]

9 голосов
/ 01 декабря 2010

\‍ - начало escape-последовательности. Если вы хотите написать \‍ буквально, вам нужно написать \\, что также является escape-последовательностью и будет интерпретироваться как один \‍. Поэтому, если вы хотите заменить один \‍ на четыре \\\\, вам нужно написать это:

g.replace("\\", "\\\\\\\\")

Но это заменит только первое вхождение одного \‍. Для глобальной замены вам нужно использовать регулярное выражение с модификатором глобального соответствия:

g.replace(/\\/g, "\\\\\\\\")
0 голосов
/ 01 декабря 2010

In general Убедитесь, что вы всегда правильно выходите.

В вашем первом аргументе для replace() вы намереваетесь передать строку, содержащую \, но она заканчивается как ", (кавычка-пробел)! Это потому, что вы на самом деле избегаете «закрывающей» кавычки в строке:

g = g.replace("\", "\\\\");
              ^    ^
              s    e
              t    n
              a    d
              r
              t

Теперь первый аргумент - это строка quote-comma-space. Остальное выдает синтаксическую ошибку!

Что вы хотели:

g = g.replace("\\", "\\\\\\\\");
              ^  ^  ^        ^
              s  e  s        e
              t  n  t        n
              a  d  a        d
              r     r
              t     t

Первый аргумент: строка \
Второй аргумент: строка \\\\

0 голосов
/ 01 декабря 2010

Обратная косая черта также служит экранирующим символом.Вы можете найти список символов на этой странице ... http://www.c -point.com / javascript_tutorial / special_characters.htm

Итак, чтобы найти или заменить обратную косую чертуВы должны избежать обратной косой черты.Я на самом деле просто запустил ваш код, и он не работает, поскольку обратная косая черта выходит за пределы первой кавычки.Что именно ты пытаешься сделать?Если вы хотите заменить каждую обратную косую черту на двойную, вам понадобится что-то вроде этого.

var g = myReadString;
g = g.replace("\\", "\\\\");

Надеюсь, это поможет!

0 голосов
/ 01 декабря 2010
g = g.replace(/\\/g, "\\\\");

Я думаю, это то, что вы ищете.Дайте мне знать, если нет.

...