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

以下を試すことができます。

> '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 に答える
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 に答える