所以我试图替换字符串中的任何非字母数字字符,包括空格。我找到了一个有效的解决方案,但感觉很烦人。我不需要两个单独的替换函数来完成此任务,但我无法弄清楚如何正确合并它们。我在网上找到的文档都没有解决这个问题。
str.replace(/\s/g,"").replace(/[^0-9a-zA-Z]/g,"").toLowerCase();
此外,^
字符代表"不是这个"在这段代码?我发现这是重复删除非字母数字字符的正确方法,但没有人能够完全解释为什么这样做。我猜测^
意味着忽略了正在进行的角色,但这只是猜测。
答案 0 :(得分:1)
您可以使用RegExp
/[^a-z\d]+|[\s]+/ig
替换所有不是字或数字字符的字符
答案 1 :(得分:0)
您可以省略第一个替换并从字符列表中删除允许的空格以保留此字符。
console.log(' fßO oä '.replace(/[^0-9a-zA-Z]/g,"").toLowerCase());

答案 2 :(得分:0)
这个应该有效:str.replace(/\W/g, "")
虽然它也会保留_
字符。
参考:https://www.w3schools.com/jsref/jsref_regexp_wordchar_non.asp
希望这有帮助!