Как сделать глобальную замену на обратную косую черту в строке в JavaScript - PullRequest
3 голосов
/ 02 мая 2011

Я пробовал: (Если все слэши затрудняют чтение, 1-я строка должна заменить прямую, 2-я строка должна заменить обратную, 3-я строка должна заменить звездочки.

newbigbend = bb_val.replace(/\//gi,"");
newbigbend = bb_val.replace(/\\/gi,"");
newbigbend = bb_val.replace(/*/gi,"");

заменить все косые черты, косые черты и звездочки. Но когда браузер доходит до средней строки newbigbend = bb_val.replace(/\\/gi,"");, он считает, что это не окончательный комментарий. Я знаю, чтобы использовать побег, чтобы заменить косую черту. Не уверен насчет спины.

Ответы [ 2 ]

6 голосов
/ 02 мая 2011

Ответ Эндрю Купера является верным с точки зрения того, почему это третье утверждение идет не так.Но вы также перезаписываете newbigbend каждый раз, поэтому вы вообще не увидите результат первых двух замен.

Если вы пытаетесь заменить все косые черты, обратные косые черты и звездочки ничем, сделайте следующее:

newbigbend = bb_val.replace(/[/\\*]/g, "");

Обратите внимание, что вам не нужен флаг i, ни один из этих символов в любом случае не чувствителен к регистру.(И обратите внимание, что внутри [] вам не нужно экранировать / или *, потому что там у них нет особого значения.) Живой пример .

Но если вы хотите использовать его как три отдельных утверждения по любой причине, то используйте newbigbend во вторых двух (и добавьте обратную косую черту, помеченную Эндрю):

newbigbend = bb_val.replace(/\//gi,"");
newbigbend = newbigbend.replace(/\\/gi,"");
newbigbend = newbigbend.replace(/\*/gi,"");
1 голос
/ 02 мая 2011

Вам также нужно сбежать от *

newbigbend = bb_val.replace(/\*/gi,"");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...