Regex, каждый не алфавитно-цифровой символ, кроме пробела или двоеточия - PullRequest
110 голосов
/ 19 мая 2011

Я не могу понять, как это сделать где-нибудь.Любая помощь?

В основном я пытаюсь сопоставить все виды разных символов, таких как амперсанды, точки с запятой, знаки доллара и т. Д.

Ответы [ 8 ]

216 голосов
/ 19 мая 2011
[^a-zA-Z\d\s:]
  • \ d - числовой класс
  • \ s - пробел
  • a-zA-Z - сопоставляет все буквы
  • ^ - отрицает ихвсе - так вы получите - не числовые символы, не пробелы и не двоеточия
33 голосов
/ 19 мая 2011

Это должно сделать это: [^a-zA-Z\d\s:] Надеюсь, это поможет!

13 голосов
/ 19 мая 2011

Попробуйте это

[^a-zA-Z0-9 :]

JS пример:

"!@#$%* ABC def:123".replace(/[^a-zA-Z0-9 :]/g, ".")

См. Онлайн пример:

http://jsfiddle.net/vhMy8/

12 голосов
/ 02 июня 2016

Если вы хотите использовать символы латинского акцентирования (например, à Ñ) как обычные буквы (т.е. избегать их совпадения), вам также необходимо включить соответствующий диапазон Unicode ( \ u00C0- \ u00FF *)1002 *) в вашем регулярном выражении, поэтому это будет выглядеть так:

/[^a-zA-Z\d\s:\u00C0-\u00FF]/g
  • ^ отрицает то, что следует
  • a-zA-Z соответствует заглавным и строчным буквам
  • \d соответствует цифрам
  • \s соответствует пробелу (если вы хотите использовать только пробелы, замените его пробелом)
  • : соответствует двоеточию
  • \u00C0-\u00FF соответствует диапазону Unicode для латинских символов с ударениями.

nb.Сопоставление с диапазоном Юникода может не работать для всех движков регулярных выражений, но вышеописанное, безусловно, работает в Javascript (как видно из этого пера на Codepen).

nb2.Если вас не беспокоит сопоставление подчеркивания, вы можете заменить a-zA-Z\d на \w, что соответствует буквам, цифрам и подчеркиванию.

2 голосов
/ 26 апреля 2017

если вы имеете в виду «не буквенно-цифровые символы», попробуйте использовать это

var reg =/[^a-zA-Z0-9]/g         //[^abc] 
1 голос
/ 16 июля 2015

Без буквенно-цифровых символов, пробелов или '_'.

var reg = /[^\w\s)]|[_]/g;
0 голосов
/ 15 июня 2017
"0_0 (: /-\ :) 0-0".replace(/[^a-zA-Z0-9 :]/g,"")

работал на меня.Однако

replace(/[^a-zA-Z/d :]/g,"")

не работал для меня.

0 голосов
/ 18 июня 2014

Попробуйте добавить это

^[^a-zA-Z\d\s:]*$

Это сработало для меня ...:)

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