Regex, каждый символ без буквенно-цифровых символов, кроме пробела или двоеточия

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

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

Ответ 1

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

Ответ 2

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

Ответ 4

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

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

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

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

Ответ 5

Нет буквенно-цифрового, пробела или '_'.

var reg = /[^\w\s)]|[_]/g;

Ответ 6

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

var reg =/[^a-zA-Z0-9]/g         //[^abc] 

Ответ 7

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

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

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

Ответ 8

"0_0 (: /-\ :) 0-0".replace(/[^a-zA-Z0-9 :]/g,"")

работал у меня. Тем не менее,

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

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