这个简单的正则表达式让我很烦恼。你能伸出援手吗?
如何让Foo's Bar
在javascript中返回foos-bar
?
var str = "Foo's Bar";
str.replace(/\s+/g, '-').replace('/[^a-zA-Z-]/g', '').toLowerCase();
return str;
我能做的最好的事情是foo's-bar
,离开'
。
感谢。
答案 0 :(得分:9)
Esailija是正确的 - 你的正则表达式是正确的,但第二个被解释为一个字符串,因为它用引号括起来。修复后,您的代码完美运行:
str.replace(/\s+/g, '-').replace(/[^a-zA-Z-]/g, '').toLowerCase();
答案 1 :(得分:0)
您可以尝试颠倒顺序,一般避免使用单词和空格字符
str.replace(/[^\w\s]+/g,'').replace(/\s+/g,"-").toLowerCase()
答案 2 :(得分:0)
您的代码中存在两个问题:
replace
中的第一个参数)str
str = str.replace(/\s+/g, '-').replace(/[^a-zA-Z-]/g, '').toLowerCase();