用短划线替换空格并使所有字母小写

时间:2009-12-31 02:26:55

标签: javascript string replace

我需要使用jQuery或vanilla JavaScript重新格式化字符串

假设我们有"Sonic Free Games"

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

所以空格应该用短划线代替,所有字母都换成小写字母。

对此有任何帮助吗?

7 个答案:

答案 0 :(得分:449)

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

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

注意g上的RegExp标记,它会在字符串中替换全局,如果不使用,只会替换第一个匹配项,并且此外,RegExp将匹配一个或多个空白字符。

答案 1 :(得分:27)

以上回答可能会让人感到困惑。 字符串方法不是修改原始对象。他们返回新对象。 必须是:

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

答案 2 :(得分:24)

您还可以使用splitjoin

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

答案 3 :(得分:1)

如果你的项目中有 lodash,你可以试试 kebabCase

_.kebabCase('Sonic Free Games')

https://lodash.com/docs/4.17.15#kebabCase

答案 4 :(得分:0)

var str = "Tatwerat Development Team";
str = str.replace(/\s+/g, '-');
console.log(str);
console.log(str.toLowerCase())

答案 5 :(得分:0)

@CMS的答案很好,但我想指出的是,您可以使用以下软件包:https://github.com/sindresorhus/slugify,该软件包可以为您提供帮助,并涵盖许多极端情况(例如,德国变音符,越南语,阿拉伯语,俄语,罗马尼亚语,土耳其语等)。

答案 6 :(得分:-1)

一个非常直接的方法是使用 javascript 字符串 repac() 方法

"Sonic Free Games".replace(' ', '-').toLowerCase(); //sonic-free-games

这会将所有出现的空格(' ')替换为破折号('-')。