JavaScript 如何将字符串转换为kebab case格式

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
JavaScript

可以通过以下方式来实现:

方法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'));
JavaScript

输出结果:

geeks-for-geeks
geeks-for-geeks
geeks-for-geeks
JavaScript

方法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'));
JavaScript

输出:

geeks-for-geeks
geeks-for-geeks
geeks-for-geeks
JavaScript

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册