Удалить специальные символы из текста

Я пытаюсь удалить специальные символы из данного текста.

Я пытался заменить его на:

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

http://jsfiddle.net/vgwv6ht2/

У вас там плохое регулярное выражение, должно быть:

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'
Другие вопросы по тегам