Я пытаюсь найти регулярное выражение, которое будет соответствовать любому символу, кроме буквы или числа. Итак, такие символы, как (,, @, £, () и т. Д.
Найдя, я хочу заменить его пустым пространством.
Любой совет.
Я пытаюсь найти регулярное выражение, которое будет соответствовать любому символу, кроме буквы или числа. Итак, такие символы, как (,, @, £, () и т. Д.
Найдя, я хочу заменить его пустым пространством.
Любой совет.
Ответы:
Чтобы найти что-либо, кроме буквы или цифры, вы можете попробовать следующее:
[^a-zA-Z0-9]
И заменить:
var str = 'dfj,dsf7lfsd .sdklfj';
str = str.replace(/[^A-Za-z0-9]/g, ' ');
Это регулярное выражение соответствует всему, что не является буквой, цифрой или _символом подчеркивания ( ).
\W
Например, в JavaScript:
"(,,@,£,() asdf 345345".replace(/\W/g, ' '); // Output: " asdf 345345"
Ты ищешь:
var yourVar = '1324567890abc§$)%';
yourVar = yourVar.replace(/[^a-zA-Z0-9]/g, ' ');
Это заменяет все не буквенно-цифровые символы пробелом.
Буква «g» в конце заменяет все вхождения.
Вместо указания аз (нижний регистр) и AZ (заглавные буквы) , которые вы можете использовать в-чувствительны к регистру вариант: /[^a-z0-9]/gi.
Это слишком поздно, но, поскольку нет принятого ответа, я хотел бы дать то, что я считаю самым простым: \ D - соответствует всем нецифровым символам.
var x = "123 235-25%";
x.replace(/\D/g, '');
Результат в x: "12323525"
См. Https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions.
попробуйте выполнить str.replace (/ [^ \ w] /); Он заменит все не алфавиты и числа из вашей строки!
Изменить 1: str.replace(/[^\w]/g, ' ')
str.replace(/[^\w]/g, ' '). Если вы не включите /gфлаг, он заменит только первое вхождение. И если вы не определяете заменяющую строку, здесь пустое место ' ', она будет заменена undefinedповсюду. Наконец, подчеркивания не будут заменены, потому что они совпадают \w. Этот ответ не идеален.
/[A-Z]/ig/[^A-Z]/ig/[0-9]/gили/\d+/g/[^0-9]/gили/\D+/g/[^A-Z0-9]/igВозможны и другие закономерности
Просто чтобы другие увидели:
someString.replaceAll("([^\\p{L}\\p{N}])", " ");
удалит все символы Юникода, не являющиеся буквами и цифрами.
replaceAll, и \p{..}экранирование свойств широко не реализовано.
Вы пробовали, чтобы str = str.replace(/\W|_/g,'');он вернул строку без какого-либо символа, и вы можете указать, есть ли какой-либо особый символ после полосы канала, |чтобы их также поймать.
var str = "1324567890abc§$)% John Doe #$@'.replace(/\W|_/g, ''); он вернется str = 1324567890abcJohnDoe
или найдите цифры и буквы и замените их пустой строкой (""):
var str = "1324567890abc§$)% John Doe #$@".replace(/\w|_/g, ''); он вернется str = '§$)% #$@';
Чтобы сопоставить что-либо, кроме буквы, цифры или буквы с диакритическими знаками, например, éвы можете попробовать следующее:
[^\wÀ-úÀ-ÿ]
И заменить:
var str = 'dfj,dsf7é@lfsd .sdklfàj1';
str = str.replace(/[^\wÀ-úÀ-ÿ]/g, '_');
По мотивам верхнего поста с поддержкой диакритических знаков
\wпредназначен для символов Word и в точности совпадает с[a-zA-Z0-9_](обратите внимание, что подчеркивание считается символом слова.) ... таким образом, сокращение будетstr.replace(/[^\w]/g, ' ')