2009-12-31 58 views
154

我需要重新使用jQuery或香草字符串的JavaScript破折号替换空间,使所有字母小写

比方说,我们有"Sonic Free Games"

我想将其转换为"sonic-free-games"

所以空格应该用破折号代替,所有的字母都转换成小写字母。

对此有任何帮助吗?

回答

335

,只用字符串replacetoLowerCase方法,例如:

var str = "Sonic Free Games"; 
str = str.replace(/\s+/g, '-').toLowerCase(); 
console.log(str); // "sonic-free-games" 

通知上RegExpg标志,它将使在字符串中替换全球,如果它不使用,只第一次出现将被替换,并且RegExp将匹配一个或多个空格字符。

+27

我想出了使用变化\ W代表任何非字母数字字符。这对于'A&P杂货店'这样的东西很有用,它会变成'一家杂货店'。 'str.replace(/ \ W +/g,' - ')。toLowerCase();' – 2014-12-05 20:15:53

+1

注意不要引用正则表达式部分,即'replace(/ \ s +/g,..'和** not **'replace ('/ \ s +/f',..'(没有撇号) – 2015-06-01 09:22:06

19

以上答案可以被认为是有点混淆。 字符串方法不是修改原始对象。他们返回新对象。 它必须是:

var str = "Sonic Free Games"; 
str = str.replace(/\s+/g, '-').toLowerCase(); //new object assigned to var str 
+8

我认为重要的是要注意,接受的答案是编辑纳入这个概念 – 2015-08-31 18:20:44

+0

@GeorgeJempty谢谢那位信息+1 – 2016-08-08 17:28:54

9

您还可以使用splitjoin

"Sonic Free Games".split(" ").join("-").toLowerCase(); //sonic-free-games 
相关问题