我需要使用jQuery或vanilla JavaScript重新格式化字符串
假设我们有"Sonic Free Games"
。
我想将其转换为"sonic-free-games"
。
所以空格应该用短划线代替,所有字母都换成小写字母。
对此有任何帮助吗?
答案 0 :(得分:449)
只需使用字符串replace
和toLowerCase
方法,例如:
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)
您还可以使用split
和join
:
"Sonic Free Games".split(" ").join("-").toLowerCase(); //sonic-free-games
答案 3 :(得分:1)
如果你的项目中有 lodash,你可以试试 kebabCase
_.kebabCase('Sonic Free Games')
答案 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
这会将所有出现的空格(' ')替换为破折号('-')。