繁体   English   中英

如何在javascript中删除字符串中的所有非字母并将空格转换为破折号?

[英]How can I strip all non-letters from string and convert spaces to dashes in javascript?

这个简单的正则表达式让我感到困扰。 你能伸出援手吗?

如何获得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 ,离开'

谢谢。

Esailija很有用-您的正则表达式是正确的,但是第二个正则表达式被解释为字符串,因为它用引号引起来。 修复该问题后,您的代码可以完美运行:

str.replace(/\s+/g, '-').replace(/[^a-zA-Z-]/g, '').toLowerCase();

您可以尝试颠倒顺序并通常避免使用单词和空格字符

str.replace(/[^\w\s]+/g,'').replace(/\s+/g,"-").toLowerCase()

您的代码中有两个问题:

  1. 正则表达式模式不应该被引用(第二个replace第一个参数)
  2. 需要将返回值分配回str

str = str.replace(/\s+/g, '-').replace(/[^a-zA-Z-]/g, '').toLowerCase();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM