以下是/正确的正则表达式,用于从输入字符串中去除非字母数字字符:
input.replace(/\W/g, '')
请注意,\W
这等效于[^0-9a-zA-Z_]
-它包括下划线字符。要删除下划线,请使用例如:
input.replace(/[^0-9a-z]/gi, '')
由于测试字符串包含各种转义的字符(不是字母数字),因此它将删除它们。
如果要按字面意义进行处理,则字符串中的反斜杠需要转义:
"\\test\\red\\bob\\fred\\new".replace(/\W/g, '')
"testredbobfrednew" // output
如果您无法正确转义输入字符串(为什么不转义),或者它来自某种不受信任/配置错误的源,则可以执行以下操作:
JSON.stringify("\\test\red\bob\fred\new").replace(/\W/g, '')
"testredbobfrednew" // output
请注意,字符串的json表示形式包括引号:
JSON.stringify("\\test\red\bob\fred\new")
""\\test\red\bob\fred\new""
但是它们也会被替换的正则表达式删除。