JavaScript 如何将驼峰命名字符串转换为蛇形命名
在本文中,我们将学习如何使用JavaScript将驼峰命名字符串转换为蛇形命名。驼峰命名字符串表示单词组合,每个单词的首字母大写,蛇形命名表示单词之间以下划线连接,全部小写。将驼峰命名转换为蛇形命名涉及将字符串从一个以下划线分隔单词且字母为小写的格式转换。
例子:
Input: GeeksForGeeks
Output: geeks_for_geeks
Input: CamelCaseToSnakeCase
Output: camel_case_to_snake_case
有几种方法可以在JavaScript中将驼峰格式字符串转换为蛇形格式,下面列出了这些方法:
- 使用正则表达式
- 使用Split()和Join()
- 使用Reduce
- 使用for循环
- 使用Array Map和Join()
我们将通过示例探索上述所有方法及其基本实现。
方法1:使用正则表达式
在这种方法中,我们使用正则表达式,通过模式匹配来识别驼峰格式字符串中的大写字母,插入下划线,并将字符串转换为小写。
语法:
camelCaseString.replace(/([a-z])([A-Z])/g, '1_2').toLowerCase();
示例: 在这个示例中,我们将“GeeksforGeeks”转换为“geeksfor_geeks”,在大写字母之前插入下划线并转换为小写。
Javascript
let camelCaseString = "GeeksForGeeks";
let snakeCaseString = camelCaseString
.replace(/([a-z])([A-Z])/g, '1_2').toLowerCase();
console.log(snakeCaseString);
输出
geeks_for_geeks
方法2:使用 Split() 和 Join() 方法
在这种方法中,我们使用一个正则表达式来分割驼峰命名的字符串,将得到的单词用下划线连接起来,并转换为小写形式以转换为蛇形命名。
语法:
let myStr = camelCaseString.split(/(?=[A-Z])/);
let snakeCaseString = myStr.join('_').toLowerCase();
示例: 在这个示例中,我们使用了上述解释的方法。
JavaScript
let camelCaseString = "GeeksForGeeks";
let myStr = camelCaseString.split(/(?=[A-Z])/);
let snakeCaseString = myStr.join('_').toLowerCase();
console.log(snakeCaseString);
输出
geeks_for_geeks
方法 3:使用 Reduce() 方法
在这种方法中,我们使用 Reduce 来遍历字符,在大写字母前添加下划线,然后连接并转换为小写字母,实现驼峰命名转蛇形命名。
语法:
array.reduce( function(total, currentValue, currentIndex, arr), initialValue )
示例: 在这个示例中,我们使用reduce()方法将驼峰式字符串转换为下划线式字符串。
Javascript
const camelCaseString = "GeeksForGeeks";
const snakeCaseString = camelCaseString.split('').reduce(
(result, val) => {
if (val === val.toUpperCase()) {
result += '_';
}
return result + val.toLowerCase();
}, '');
console.log(snakeCaseString);
输出
_geeks_for_geeks
方法4:使用for循环
在这种方法中,使用循环遍历字符,在大写字母前(第一个字母除外)添加下划线,并将其转换为小写,在JavaScript中将驼峰命名法转换为蛇形命名法字符串。
语法:
for (statement 1 ; statement 2 ; statement 3){
code here...
};
示例: 在这个示例中,我们使用了上述解释的方法。
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);
输出
geeks_for_geeks
方法5:使用数组、映射和连接方法
在这种方法中,我们将驼峰式字符串拆分成单词,每个单词使用映射函数转换为小写,并使用下划线连接以进行蛇形命名转换。
语法:
let snakeCaseArray = myStr.map(word => word.toLowerCase());
示例: 在这个示例中,我们使用了上面解释的方法。
JavaScript
let camelCaseString = "GeeksForGeeks";
let myStr = camelCaseString.split(/(?=[A-Z])/);
let snakeCaseArray = myStr.map(word => word.toLowerCase());
let snakeCaseString = snakeCaseArray.join('_');
console.log(snakeCaseString);
输出
geeks_for_geeks