JavaScript 如何将驼峰命名字符串转换为蛇形命名

JavaScript 如何将驼峰命名字符串转换为蛇形命名

在本文中,我们将学习如何使用JavaScript将驼峰命名字符串转换为蛇形命名。驼峰命名字符串表示单词组合,每个单词的首字母大写,蛇形命名表示单词之间以下划线连接,全部小写。将驼峰命名转换为蛇形命名涉及将字符串从一个以下划线分隔单词且字母为小写的格式转换。

例子:

Input: GeeksForGeeks  
Output: geeks_for_geeks  
Input: CamelCaseToSnakeCase   
Output: camel_case_to_snake_case
JavaScript

有几种方法可以在JavaScript中将驼峰格式字符串转换为蛇形格式,下面列出了这些方法:

  • 使用正则表达式
  • 使用Split()和Join()
  • 使用Reduce
  • 使用for循环
  • 使用Array Map和Join()

我们将通过示例探索上述所有方法及其基本实现。

方法1:使用正则表达式

在这种方法中,我们使用正则表达式,通过模式匹配来识别驼峰格式字符串中的大写字母,插入下划线,并将字符串转换为小写。

语法:

camelCaseString.replace(/([a-z])([A-Z])/g, '1_2').toLowerCase();
JavaScript

示例: 在这个示例中,我们将“GeeksforGeeks”转换为“geeksfor_geeks”,在大写字母之前插入下划线并转换为小写。

Javascript

let camelCaseString = "GeeksForGeeks"; 
let snakeCaseString = camelCaseString 
    .replace(/([a-z])([A-Z])/g, '1_2').toLowerCase(); 
console.log(snakeCaseString);
JavaScript

输出

geeks_for_geeks
JavaScript

方法2:使用 Split() 和 Join() 方法

在这种方法中,我们使用一个正则表达式来分割驼峰命名的字符串,将得到的单词用下划线连接起来,并转换为小写形式以转换为蛇形命名。

语法:

let myStr = camelCaseString.split(/(?=[A-Z])/);  
let snakeCaseString = myStr.join('_').toLowerCase();
JavaScript

示例: 在这个示例中,我们使用了上述解释的方法。

JavaScript

let camelCaseString = "GeeksForGeeks"; 
let myStr = camelCaseString.split(/(?=[A-Z])/); 
let snakeCaseString = myStr.join('_').toLowerCase(); 
console.log(snakeCaseString);
JavaScript

输出

geeks_for_geeks
JavaScript

方法 3:使用 Reduce() 方法

在这种方法中,我们使用 Reduce 来遍历字符,在大写字母前添加下划线,然后连接并转换为小写字母,实现驼峰命名转蛇形命名。

语法:

array.reduce( function(total, currentValue, currentIndex, arr), initialValue )
JavaScript

示例: 在这个示例中,我们使用reduce()方法将驼峰式字符串转换为下划线式字符串。

Javascript

const camelCaseString = "GeeksForGeeks"; 
const snakeCaseString = camelCaseString.split('').reduce( 
    (result, val) => { 
        if (val === val.toUpperCase()) { 
            result += '_'; 
        } 
        return result + val.toLowerCase(); 
    }, ''); 
console.log(snakeCaseString);
JavaScript

输出

_geeks_for_geeks
JavaScript

方法4:使用for循环

在这种方法中,使用循环遍历字符,在大写字母前(第一个字母除外)添加下划线,并将其转换为小写,在JavaScript中将驼峰命名法转换为蛇形命名法字符串。

语法:

for (statement 1 ; statement 2 ; statement 3){  
    code here...  
};
JavaScript

示例: 在这个示例中,我们使用了上述解释的方法。

Javascript

function conversionFunction(str) { 
    let snakeCase = ''; 
    for (let i = 0; i < str.length; i++) { 
        if (i > 0 && str[i] === str[i].toUpperCase()) { 
            snakeCase += '_' + str[i].toLowerCase(); 
        } else { 
            snakeCase += str[i].toLowerCase(); 
        } 
    } 
    return snakeCase; 
} 
  
let camelCaseString = "GeeksForGeeks"; 
let snakeCaseString = conversionFunction(camelCaseString); 
console.log(snakeCaseString);
JavaScript

输出

geeks_for_geeks
JavaScript

方法5:使用数组、映射和连接方法

在这种方法中,我们将驼峰式字符串拆分成单词,每个单词使用映射函数转换为小写,并使用下划线连接以进行蛇形命名转换。

语法:

let snakeCaseArray = myStr.map(word => word.toLowerCase());
JavaScript

示例: 在这个示例中,我们使用了上面解释的方法。

JavaScript

let camelCaseString = "GeeksForGeeks"; 
  
let myStr = camelCaseString.split(/(?=[A-Z])/); 
let snakeCaseArray = myStr.map(word => word.toLowerCase()); 
let snakeCaseString = snakeCaseArray.join('_'); 
  
console.log(snakeCaseString);
JavaScript

输出

geeks_for_geeks
JavaScript

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册