小编典典

使用 RegExp 删除所有特殊字符

all

我想要一个能从字符串中删除所有特殊字符的正则表达式。我正在尝试这样的事情,但它在 IE7 中不起作用,尽管它在 Firefox 中起作用。

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

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

RegExp 的详细描述也会有所帮助。


阅读 124

收藏
2022-04-24

共1个答案

小编典典

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

正如评论中提到的,将其作为白名单更容易 - 替换 不在 安全列表中的字符。

插入符号 ( ^) 字符是 set
的否定[...]gi例如全局且不区分大小写(后者有点多余,但我想提一下),此示例中的安全列表是数字、单词字符、下划线 ( \w) 和空格 (
\s)。

2022-04-24