使用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
	提交
		取消
	