首页 > web前端 > js教程 > 在 Javascript 中使用此函数将字符串转换为驼峰命名法。

在 Javascript 中使用此函数将字符串转换为驼峰命名法。

PHPz
发布: 2024-08-01 08:07:23
原创
685 人浏览过

曾经需要将字符串转换为驼峰命名法吗?我在探索开源 Supabase 存储库时发现了一个有趣的代码片段。这是他们使用的方法:

function featureToCamelCase(feature: Feature) {
  return feature
    .replace(/:/g, '\_')
    .split('\_')
    .map((word, index) => (index === 0 ? word : word\[0\].toUpperCase() + word.slice(1)))
    .join('') as FeatureToCamelCase<typeof feature>
}
登录后复制

这个功能非常简洁。它将冒号替换为下划线,将字符串拆分为单词,然后映射每个单词以将其转换为驼峰命名法。第一个单词保持小写,后续单词的第一个字符大写,然后再重新连接在一起。简单而有效!

Convert a string to camelCase using this function in Javascript.

我在 Stack Overflow 上发现了另一种不使用正则表达式的方法。这是替代方案:

function toCamelCase(str) {
  return str.split(' ').map(function(word, index) {
    // If it is the first word make sure to lowercase all the chars.
    if (index == 0) {
      return word.toLowerCase();
    }
    // If it is not the first word only upper case the first char and lowercase the rest.
    return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
  }).join('');
}
登录后复制

来自 SO 的这段代码片段有注释解释了这段代码的作用,除了它不使用任何类型的正则表达式。 Supabase 将字符串转换为驼峰命名方式的代码与此 SO 答案非常相似,除了注释和使用的正则表达式。

.replace(/:/g, '\_')
登录后复制

此方法用空格分割字符串,然后映射到每个单词。第一个单词完全小写,而后续单词的第一个字符大写,其余字符小写。最后,单词重新连接在一起形成驼峰式字符串。

Stack Overflow 用户的一条有趣评论提到了这种方法的性能优势:

“+1 表示不使用正则表达式,即使问题要求使用正则表达式的解决方案。这是一个更清晰的解决方案,而且在性能方面也取得了明显的胜利(因为处理复杂的正则表达式比仅仅迭代一堆字符串并将它们连接在一起是一项更困难的任务)。请参阅 jsperf.com/camel-casing-regexp-or-character-manipulation/1 我在这里举了一些例子以及这个(还有我自己的谦虚的例子)改进了它的性能,尽管在大多数情况下,为了清晰起见,我可能更喜欢这个版本)。”

两种方法都有其优点。 Supabase 代码中的正则表达式方法非常简洁,并且利用了强大的字符串操作技术。另一方面,非正则表达式方法因其清晰度和性能而受到称赞,因为它避免了与正则表达式相关的计算开销。

以下是您可以在它们之间进行选择的方法:

  • 如果您需要一个利用 JavaScript 强大的正则表达式功能的紧凑的单行解决方案,请使用正则表达式方法。另外,请务必添加注释来解释您的正则表达式的作用,以便您未来的自己或下一个使用您的代码的开发人员能够理解。
  • 如果您优先考虑可读性和性能,请选择非正则表达式方法,特别是在处理较长字符串或多次运行此转换时。

想学习如何从头开始构建 shadcn-ui/ui 吗?查看 从头开始构建

关于我:

网站:https://ramunarasinga.com/

Linkedin:https://www.linkedin.com/in/ramu-narasinga-189361128/

Github:https://github.com/Ramu-Narasinga

电子邮件:ramu.narasinga@gmail.com

从头开始构建 shadcn-ui/ui

参考:

  1. https://github.com/supabase/supabase/blob/master/apps/studio/hooks/misc/useIsFeatureEnabled.ts#L16
  2. https://stackoverflow.com/a/35976812

以上是在 Javascript 中使用此函数将字符串转换为驼峰命名法。的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板