RegExpですべての特殊文字を削除する 質問する

RegExpですべての特殊文字を削除する 質問する

文字列からすべての特殊文字を削除する RegExp が必要です。このようなことを試していますが、Firefox では動作しますが、IE7 では動作しません。

var specialChars = "!@#$^&%*()+=-[]\/{}|:<>?,.";

for (var i = 0; i < specialChars.length; i++) {
  stringToReplace = stringToReplace.replace(new RegExp("\\" + specialChars[i], "gi"), "");
}

RegExp の詳細な説明も役立ちます。

ベストアンサー1

var desired = stringToReplace.replace(/[^\w\s]/gi, '')

コメントで述べたように、これをホワイトリストとして実行する方が簡単です。セーフリストにない文字を置き換えます。

キャレット ( ^) 文字は、セット の否定であり[...]giグローバルで大文字と小文字を区別しません (後者は少し冗長ですが、言及したかったのです)。この例のセーフリストは、数字、単語文字、アンダースコア ( \w)、および空白 ( \s) です。

おすすめ記事