У меня есть следующие JavaScript строка кода, который удаляет characters- включая commas- из строки:Удалить запятые из Regex
return str.replace(/(?!\/)(?!\)(?!\-)(\W)/ig, '');
Как я могу только вынуть кусок кода, который удаляет запятые?
У меня есть следующие JavaScript строка кода, который удаляет characters- включая commas- из строки:Удалить запятые из Regex
return str.replace(/(?!\/)(?!\)(?!\-)(\W)/ig, '');
Как я могу только вынуть кусок кода, который удаляет запятые?
Регулярное выражение /(?!\/)(?!\)(?!\-)(\W)/ig
соответствует любому символу, который не является «словом» характер (то есть. [a-zA-Z0-9_]
) и 3 lookaheads ограничивают также характер /
, и
-
. Запятая удаляется, поскольку она является частью \W
.
Если вы хотите сохранить его, добавить еще один предпросмотр: (?!,)
, то ваше регулярное выражение становится:
return str.replace(/(?!\/)(?!)(?!-)(?!,)(\W)/g, '');
я удалил unnecessay побег и нечувствительным флаг дела.
Это должно быть написано как:
return str.replace(/[^\w\/, -]/g, '');
Спасибо за ваш ответ, можете ли вы объяснить, почему я не могу просто удалить эту часть: '\ W' из регулярного выражения? Не могли бы вы также объяснить, что вы подразумеваете под этим: _I удалили ненужный побег и флагом, нечувствительным к регистру. Спасибо! – user3378165
@ user3378165: В регулярном выражении вам нужно избегать определенных специальных символов. Пространство и тире не являются особыми, поэтому нет необходимости их избегать. Вы не можете удалить только '\ W', потому что он содержит только 3 отрицательных результата, которые соответствуют 0-длинному, вы ничего не можете удалить ничем! – Toto
@ user3378165: Для некоторых основ регулярных выражений см. Http://stackoverflow.com/questions/22937618/reference-what-does-this-regex-mean и http://www.regular-expressions.info/ – Toto
не в downvoter, но просьба представить более подробную информацию и ожидать ввода и вывода строк. – Jan