Удалить специальные символы из текста
Я пытаюсь удалить специальные символы из данного текста.
Я пытался заменить его на:
var stringToReplace = 'ab風cd � abc 123 € AAA';
var newText = stringToReplace.replace(/[^\d.-]/g, '');
но это не работает Я хочу, чтобы новый текст был:
newText = 'ab cd abc 123 AAA'
Я пробовал некоторые регулярные выражения, но ни один из них, похоже, не работает. настоящая проблема с "風" (такие символы). любое предложение? Спасибо!
4 ответа
Решение
Просто используйте.
stringToReplace.replace(/\W/g, ' ');
Выход
"ab cd abc 123 AAA"
Вы могли бы использовать /\W/g
как ваше регулярное выражение
\W - The opposite of \w. Matches any non-alphanumeric character.
Например:
var string = 'ab風cd � abc 123 € AAA';
string = string.replace(/\W/g, ' ')
alert(string); // ab cd abc 123 AAA
У вас там плохое регулярное выражение, должно быть:
var newText = stringToReplace.replace(/[^\da-z]/ig, ' ');
Вы можете попробовать ниже,
> 'ab風cd � abc 123 € AAA'.replace(/[^\dA-Za-z]/g, " ")
'ab cd abc 123 AAA'
[^\dA-Za-z]
Отрицательный класс символов, который соответствует любому символу, но не цифрам или алфавитам.
ИЛИ ЖЕ
> 'ab風cd � abc 123 € AAA'.replace(/[^\dA-Za-z\s]/g, "")
'abcd abc 123 AAA'
> 'ab風cd � abc 123 € AAA'.replace(/[^\dA-Za-z\s]/g, " ")
'ab cd abc 123 AAA'