我想要一个RegExp,它将从字符串中删除所有特殊字符。我正在尝试类似的方法,但是它在IE7中不起作用,尽管它在Firefox中有效。
var specialChars = "!@#$^&%*()+=-[]\/{}|:<>?,."; for (var i = 0; i < specialChars.length; i++) { stringToReplace = stringToReplace.replace(new RegExp("\\" + specialChars[i], "gi"), ""); }
RegExp的详细说明也将有所帮助。
var desired = stringToReplace.replace(/[^\w\s]/gi, '')
正如评论中提到的,将其作为白名单更容易-替换安全列表 中不 存在的字符。
脱字号(^)表示集合的取反[...],gi表示全局且不区分大小写(后者有点多余,但我想提一下),本例中的安全列表是数字,单词字符,下划线(\w)和空格(\s)。
^
[...]
gi
\w
\s