2015-02-19 6 views
1

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

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

var stringToReplace = 'ab風cd � abc 123 € AAA'; 
var newText = stringToReplace.replace(/[^\d.-]/g, ''); 

, но это не работает. Я хочу, что newText будет:

newText = 'ab cd  abc 123 AAA' 

Я пробовал некоторые регулярные выражения, но ни один из них не похоже на работу. Настоящая проблема связана с '風' (эти символы). любое предложение? Спасибо!

ответ

2

Просто используйте.

stringToReplace.replace(/\W/g, ' '); 

Выход

"ab cd abc 123 AAA"

+0

Пожалуйста, отметьте ответ как правильный. Это помогает другим пользователям находить правильный ответ напрямую. – void

+0

спасибо, он работает! но что, если я хочу, чтобы ивритские буквы оставались в тексте, например: 'ab 風 cd abc 123 € AAA שלום' ожидаемый текст: 'ab cd abc 123 AAA שלום' – Bakbuk

0

Вы можете попробовать ниже,

> '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' 
0

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

var newText = stringToReplace.replace(/[^\da-z]/ig, ' '); 
0

Вы можете использовать /\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/

Смежные вопросы