gpt4 book ai didi

javascript - 在JavaScript中将不同的字符串转换为snake_case

转载 作者:行者123 更新时间:2023-11-28 14:26:52 24 4
gpt4 key购买 nike

我知道我们有一个与此类似的问题,但不完全相同。

我试图让我的函数工作,它接受一个字符串作为参数并将其转换为 snake case 。它在大多数情况下都适用于所有花哨的!?<>=字符,但有一种情况无法转换,其 camel case .

当我传递像snakeCase这样的字符串时它会失败。它返回 snakecase而不是snake_case .

我尝试实现它,但最终却把它弄得更乱了......

我该怎么做?

我的代码:

const snakeCase = string => {
string = string.replace(/\W+/g, " ").toLowerCase().split(' ').join('_');

if (string.charAt(string.length - 1) === '_') {
return string.substring(0, string.length - 1);
}

return string;
}

最佳答案

您需要能够检测字符串中大写字母位于另一个字母后面(即不后面有空格)的点。您可以在对输入字符串调用 toLowerCase 之前使用正则表达式来执行此操作:

\B(?=[A-Z])

换句话说,一个非单词边界,后跟一个大写字符。在上面的内容或文字空间上进行拆分,然后 .map 将结果数组转换为小写,然后您可以通过下划线连接:

const snakeCase = string => {
return string.replace(/\W+/g, " ")
.split(/ |\B(?=[A-Z])/)
.map(word => word.toLowerCase())
.join('_');
};

console.log(snakeCase('snakeCase'));

关于javascript - 在JavaScript中将不同的字符串转换为snake_case,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52963900/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com