我想要一个能从字符串中删除所有特殊字符的正则表达式。我正在尝试这样的事情,但它在 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, '')
正如评论中提到的,将其作为白名单更容易 - 替换 不在 安全列表中的字符。
插入符号 ( ^) 字符是 set 的否定[...],gi例如全局且不区分大小写(后者有点多余,但我想提一下),此示例中的安全列表是数字、单词字符、下划线 ( \w) 和空格 ( \s)。
^
[...]
gi
\w
\s