文字列からすべての特殊文字を削除する 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
) です。