使用RegExp删除所有特殊字符我想要一个将从字符串中删除所有特殊字符的RegExp。我尝试这样的东西,但它在IE7中不起作用,虽然它适用于Firefox。var specialChars = "!@#$^&%*()+=-[]\/{}|:<>?,.";for (var i = 0; i < specialChars.length; i++) {
stringToReplace = stringToReplace.replace(new RegExp("\\" + specialChars[i], "gi"), "");}RegExp的详细描述也很有用。
3 回答
慕容森
TA贡献1853条经验 获得超18个赞
var desired = stringToReplace.replace(/[^\w\s]/gi, '')
正如评论中提到的那样,作为白名单更容易做到这一点 - 替换不在您的安全列表中的字符。
caret(^
)字符是集合的否定[...]
,gi
比如全局和不区分大小写(后者有点多余,但我想提一下),本例中的安全列表是数字,单词字符,下划线(\w
)和空格(\s
)。
至尊宝的传说
TA贡献1789条经验 获得超10个赞
请注意,如果您仍想要排除某个集合,包括斜杠和特殊字符等内容,则可以执行以下操作:
var outString = sourceString.replace(/[`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi, '');
请特别注意,为了还包含“减号”字符,您需要使用反斜杠来逃避它,就像后一组一样。如果你不这样做,它也会选择0-9,这可能是不受欢迎的。
添加回答
举报
0/150
提交
取消