1

我正在尝试从给定文本中删除特殊字符。

我尝试将其替换为:

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

但它不起作用。我希望 newText 是:

newText = 'ab cd      abc 123   AAA'

我尝试了一些正则表达式,但它们似乎都不起作用。真正的问题在于“风”(那些字符)。有什么建议吗?谢谢!

4

4 回答 4

2

就用吧。

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

输出

"ab cd abc 123 AAA"

于 2015-02-19T14:05:48.417 回答
0

你那里有错误的正则表达式,它应该是:

var newText = stringToReplace.replace(/[^\da-z]/ig, ' ');
于 2015-02-19T14:04:17.577 回答
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/

于 2015-02-19T14:05:00.907 回答
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'
于 2015-02-19T14:03:01.037 回答