Javascript .replace () ничего не делает для строки - PullRequest
0 голосов
/ 20 февраля 2019

Как веб-разработчик с опытом работы более 2 лет, я стесняюсь спросить это, но -

следующий код не работает должным образом:

var string = "Daln, nik, But, Blaz, wan";
string = string.replace("/[^a-zA-Z,]+/g", "");

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

var string = "Daln, nik, But, Blaz, wan";
string = string.replace("/[a-zA-Z,]+/g", "");

, где оно должно заменять любой символ от a до z как в верхнем, так и в нижнем регистре, и любые запятые, это не так.Я пробовал это в своем браузере и в открытой среде тестирования, такой как jsbin.com, и результаты такие же.

Вопреки моему убеждению, что с регулярным выражением что-то не так, похоже, что он работает нормально, так какавтономно, это было доказано этим инструментом для тестирования в реальном времени https://regexr.com/

Так вот, мне интересно, что, черт возьми, не так, и я благодарен всем, кто выручает!

Ответы [ 3 ]

0 голосов
/ 20 февраля 2019

Это ничего не делает, потому что вы пытаетесь заменить строку "/[a-zA-Z,]+/g", которая не существует.

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

var string = "Daln, nik, But, Blaz, wan";
string = string.replace(/[a-zA-Z,]+/g, "");
0 голосов
/ 20 февраля 2019

Вы не передаете регулярное выражение в качестве аргумента.Вы проезжаете string.Согласно док.

Литерал регулярного выражения: , состоящий из шаблона, заключенного между косыми чертами (//).

Вы заключаете выражение в "" цитаты.Что делает его string.Вы должны удалить "" Если вы хотите создать регулярное выражение со строкой.Вы можете использовать RegExp()

0 голосов
/ 20 февраля 2019

Вы передаете replace строку, а не регулярное выражение.

Удалите символы " вокруг регулярного выражения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...