使用RegExp删除所有特殊字符

使用RegExp删除所有特殊字符

我想要一个将从字符串中删除所有特殊字符的RegExp。我尝试这样的东西,但它在IE7中不起作用,虽然它适用于Firefox。

var specialChars = "!@#$^&%*()+=-[]\/{}|:<>?,.";for (var i = 0; i < specialChars.length; i++) {
  stringToReplace = stringToReplace.replace(new RegExp("\\" + specialChars[i], "gi"), "");}

RegExp的详细描述也很有用。


素胚勾勒不出你
浏览 1128回答 3
3回答

慕容森

var&nbsp;desired&nbsp;=&nbsp;stringToReplace.replace(/[^\w\s]/gi,&nbsp;'')正如评论中提到的那样,作为白名单更容易做到这一点 - 替换不在您的安全列表中的字符。caret(^)字符是集合的否定[...],gi比如全局和不区分大小写(后者有点多余,但我想提一下),本例中的安全列表是数字,单词字符,下划线(\w)和空格(\s)。

至尊宝的传说

请注意,如果您仍想要排除某个集合,包括斜杠和特殊字符等内容,则可以执行以下操作:var&nbsp;outString&nbsp;=&nbsp;sourceString.replace(/[`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi,&nbsp;'');请特别注意,为了还包含“减号”字符,您需要使用反斜杠来逃避它,就像后一组一样。如果你不这样做,它也会选择0-9,这可能是不受欢迎的。
打开App,查看更多内容
随时随地看视频慕课网APP