Регулярное выражение: любой символ, который НЕ является буквой или цифрой - PullRequest
90 голосов
/ 07 июня 2010

Я пытаюсь определить регулярное выражение, которое будет соответствовать любому символу, который не является буквой или цифрой. Значит, такие символы, как (,, @, £, () и т. Д ...

Найдя его, я хочу заменить его пробелом.

Любой совет.

Ответы [ 8 ]

137 голосов
/ 07 июня 2010

Чтобы соответствовать чему-либо, кроме буквы или цифры, вы можете попробовать это:

[^a-zA-Z0-9]

и заменить:

var str = 'dfj,dsf7lfsd .sdklfj';
str = str.replace(/[^A-Za-z0-9]/g, ' ');
32 голосов
/ 07 июня 2010

Это регулярное выражение не соответствует буквам, цифрам и символам подчеркивания.


\W

Например, в javascript:


"(,,@,£,() asdf 345345".replace(/\W/g, ' ');

18 голосов
/ 07 июня 2010

Вы ищете:

var yourVar = '1324567890abc§$)%';
yourVar = yourVar.replace(/[^a-zA-Z0-9]/g, ' ');

При этом все не алфавитно-цифровые символы заменяются пробелом.

"g" на конце заменяет все вхождения.

Вместо указания a-z (строчные буквы) и A-Z (прописные буквы) вы также можете использовать параметр с учетом регистра: /[^a-z0-9]/gi.

7 голосов
/ 16 декабря 2014

Это слишком поздно, но поскольку нет принятого ответа, я хотел бы предоставить то, что я считаю самым простым: \ D - соответствует всем нецифровым символам.

var x = "123 235-25%";
x.replace(/\D/g, '');

Результаты в х: "12323525"

См. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

4 голосов
/ 18 февраля 2017

попробуйте сделать str.replace (/ [^ \ w] /); Он заменит все не алфавиты и цифры из вашей строки!

Редактировать 1: str.replace(/[^\w]/g, ' ')

3 голосов
/ 30 июня 2016

Просто чтобы другие увидели:

someString.replaceAll("([^\\p{L}\\p{N}])", " ");

удалит все не-буквенные и нечисловые символы Юникода.

Источник

2 голосов
/ 12 октября 2015

Вы пробовали str = str.replace(/\W|_/g,'');, он вернет строку без каких-либо символов, и вы можете указать, будет ли какой-либо особенный символ после строки | также их перехватывать.

var str = "1324567890abc§$)% John Doe #$@'.replace(/\W|_/g, ''); вернется str = 1324567890abcJohnDoe

или найдите цифры и буквы и замените их на пустую строку (""):

var str = "1324567890abc§$)% John Doe #$@".replace(/\w|_/g, ''); вернется str = '§$)% #$@';

1 голос
/ 29 марта 2018

Чтобы сопоставить что-либо кроме буквы, цифры или буквы с диакритическими знаками, такими как é, вы можете попробовать это:

[^\wÀ-úÀ-ÿ]

И заменить:

var str = 'dfj,dsf7é@lfsd .sdklfàj1';
str = str.replace(/[^\wÀ-úÀ-ÿ]/g, '_');

Вдохновленный верхним постом с поддержкой диакритических знаков

источник

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