Answers:
只需使用String replace和toLowerCase方法,例如:
var str = "Sonic Free Games";
str = str.replace(/\s+/g, '-').toLowerCase();
console.log(str); // "sonic-free-games"
请注意,g上的标志RegExp,它将在字符串中全局进行替换,如果不使用它,则将仅替换第一个匹配项,并且RegExp将匹配一个或多个空格字符。
replace(/\s+/g, ..与不 replace('/\s+/f', ..(不撇号)
String.prototype.trim方法:str.trim().replace(/\s+/g, '-').toLowerCase()
以上答案可以认为有点令人困惑。字符串方法不修改原始对象。他们返回新对象。肯定是:
var str = "Sonic Free Games";
str = str.replace(/\s+/g, '-').toLowerCase(); //new object assigned to var str
您还可以使用split和join:
"Sonic Free Games".split(" ").join("-").toLowerCase(); //sonic-free-games
@CMS的答案很好,但我想指出的是,您可以使用此软件包:https : //github.com/sindresorhus/slugify,它可以为您解决这个问题,并涵盖了许多极端情况(例如,德国变音符号,越南语,阿拉伯语) ,俄语,罗马尼亚语,土耳其语等)。
str.replace(/\W+/g, '-').toLowerCase();