Регулярное выражение: любой символ, который НЕ является буквой или номером

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

После обнаружения я хочу заменить его пустым пространством.

Любые советы.

Ответ 1

Чтобы соответствовать чему-либо, кроме буквы или номера, вы можете попробовать следующее:

[^a-zA-Z0-9]

И заменить:

var str = 'dfj,dsf7lfsd .sdklfj';
str = str.replace(/[^A-Za-z0-9]/g, ' ');

Ответ 2

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


\W

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


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

Ответ 3

Вы ищете:

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

Это заменяет все не буквенно-цифровые символы пробелом.

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

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

Ответ 4

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

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

Ответ 5

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

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

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

Источник

Ответ 6

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

var str = "1324567890abc§$)% John Doe #[email protected]'.replace(/\W|_/g, ''); он вернет str = 1324567890abcJohnDoe

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

var str = "1324567890abc§$)% John Doe #[email protected]".replace(/\w|_/g, ''); он вернет str = '§$)% #[email protected]';

Ответ 7

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

Изменить 1: str.replace(/[^\w]/g, ' ')