Только один обратный слеш в JavaScript - PullRequest
0 голосов
/ 25 апреля 2019

Я знаю, что обратная косая черта является escape-символом в js.И чтобы отобразить одну обратную косую черту, мне нужно написать две.

Но у меня есть экспресс-сервер, который отправляет запрос в базу данных, и здесь мне нужно добавить только одну обратную косую черту.ТАК, если фильтр содержит две обратных косых черты, замените его только одним.Как это написать?

     filter.replace("\\", String.fromCharCode(92)); //do two not one
     filter.replace("\\", "\"); //doesn't work, syntax error

пример "аааа \\ аааа" -> "аааа \ аааа"

Еще идеи?--- UPADTE --- Строка, которая отправляется в базу данных, содержит две обратные косые черты, но графический интерфейс js показывает только одну (конечно).

Ответы [ 2 ]

2 голосов
/ 25 апреля 2019

Как это написать?

Вы сказали это сами:

, чтобы отобразить один обратный слеш, мне нужно написать два.

Итак, если у вас есть два в строке для начала, то вам нужно заменить два (тип четыре) на один (тип два).

var filter = "This string has a double slash in it: \\\\";
console.log(`The original string: ${filter}`);
filter = filter.replace("\\\\", "\\");
console.log(`The filtered string: ${filter}`);
0 голосов
/ 25 апреля 2019

Квентин ответил на ваш вопрос, но еще один способ подумать о том, что две обратные косые черты, записанные в строчке, преобразуются в одну обратную косую черту, как только вы что-то с ней сделаете.

Например:

Console.Log("\");
//Returns Error

Console.Log("\\");
//Returns:  \

var i = "this is a backslash \\"
//i now contains only one backslash
Console.Log(i);
//Returns:  this is a backslash \

Редактировать:

Поскольку вы выяснили, что после этого в запросе происходит сбой, вы можете попробовать убедиться, чтоприсвоил его переменной, а затем передал его в запрос.

i = "A string containing backslashes \\"
sql.Query(i);

Edit 2:

О, я только что понял, вы пытаетесь избежать двоеточий ':'уже обрабатывается в JS.Так что, если запрос не разбирает ваши escape-символы, тогда просто \: должно быть совершенно корректно.

...