JavaScript 如何将字符串转换为kebab case格式
给定一个带有空格分隔、驼峰式或蛇形式的字母的字符串,任务是找到以下字符串的kebab case格式。
例如:
Input: Geeks For Geeks
Output: geeks-for-geeks
Input: GeeksForGeeks
Output: geeks-for-geeks
Input: Geeks_for_geeks
Output: geeks-for-geeks
可以通过以下方式来实现:
方法1:使用replace方法
在这里我们有一个名为kebabCase的函数,它接受一个字符串并将其转换为kebab case后返回一个字符串。在这里我们使用replace方法两次,因为第一个replace方法是用来获取靠近大写字母的所有字母,并将它们替换为连字符。第二个replace函数用于获取空格和下划线,并将它们替换为连字符。
示例: 在这个示例中,我们使用了上述解释的方法。
const kebabCase = string => string
.replace(/([a-z])([A-Z])/g, "1-2")
.replace(/[\s_]+/g, '-')
.toLowerCase();
console.log(kebabCase('Geeks For Geeks'));
console.log(kebabCase('GeeksForGeeks'));
console.log(kebabCase('Geeks_For_Geeks'));
输出结果:
geeks-for-geeks
geeks-for-geeks
geeks-for-geeks
方法2:使用match方法
使用map方法来检查空格、大写字母和下划线。它创建一个数组并推入分隔字符串的单词。现在使用 join() 方法将数组用连字符连接起来。 最后将整个字符串转换为小写。
示例: 在这个示例中,我们使用了上面解释过的方法。
const kebabCase = str => str
.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)
.join('-')
.toLowerCase();
console.log(kebabCase('Geeks For Geeks'));
console.log(kebabCase('GeeksForGeeks'));
console.log(kebabCase('Geeks_For_Geeks'));
输出:
geeks-for-geeks
geeks-for-geeks
geeks-for-geeks
极客教程