我需要使用jQuery或香草JavaScript重新格式化字符串
假设我们有《索尼克免费游戏》。
我想把它转换成“无声音游戏”。
因此,空格应该被破折号取代,所有字母都应该转换为小写字母。
有人帮忙吗?
我需要使用jQuery或香草JavaScript重新格式化字符串
假设我们有《索尼克免费游戏》。
我想把它转换成“无声音游戏”。
因此,空格应该被破折号取代,所有字母都应该转换为小写字母。
有人帮忙吗?
当前回答
只需使用String replace和toLowerCase方法,例如:
var str = "Sonic Free Games";
str = str.replace(/\s+/g, '-').toLowerCase();
console.log(str); // "sonic-free-games"
注意RegExp上的g标志,它将在字符串内进行全局替换,如果不使用它,则只替换第一个出现的字符,而且RegExp将匹配一个或多个空白字符。
其他回答
你也可以使用split和join:
"Sonic Free Games".split(" ").join("-").toLowerCase(); //sonic-free-games
一种非常直接的方法是使用JavaScript String replaceAll()方法。
"Sonic Free Games".replaceAll(' ', '-').toLowerCase(); //sonic-free-games
对于这样的简单替换,正则表达式通常是多余的。
这样更简单,可读性更强。
然而,如果你仍然需要一个正则表达式,你也可以用这个方法使用它们。关于这个例子,请参阅蚊子文档。
如果你需要IE支持,你需要一个polyfill。
var str = "Tatwerat开发团队"; STR = STR .replace(/\s+/g, '-'); console.log (str); console.log (str.toLowerCase ())
只需使用String replace和toLowerCase方法,例如:
var str = "Sonic Free Games";
str = str.replace(/\s+/g, '-').toLowerCase();
console.log(str); // "sonic-free-games"
注意RegExp上的g标志,它将在字符串内进行全局替换,如果不使用它,则只替换第一个出现的字符,而且RegExp将匹配一个或多个空白字符。
如果你的项目中有lodash,你可以尝试kebabCase
_.kebabCase('Sonic Free Games')
https://lodash.com/docs/4.17.15#kebabCase