javascript - 在 Camel 案例转换中让 Camel 开心

标签 javascript regex

我写了驼峰字符串的函数(要求是把单词开头和每个连字符后面的字符踢起来,这是针对人名)。

function sadCamelize(input) {
  return input.toLowerCase().replace(/([-\s])(.)/g,
    function(match, separator, starter) {
      return separator + starter.toUpperCase();
  });
}

现在,我想让我的 Camel 开心,这样即使是字符串的第一个字符(不是后续空格也不是连字符)都会被启动。 Id est,而不是:

HONKA-HONKA -> honka-Honka

我想得到

HONKA-HONKA -> Honka-Honka

此刻我卡住了,可能是因为烦恼。所有的 Camel 都很沮丧,我也是如此。另外 - 我所说的悲伤/快乐 Camel (头向下/向上)的正确命名是什么?

最佳答案

function happyCamelize(str) {
    return str.replace(/([a-z])([a-z]+)/gi, function(_, $1, $2) {
        // _: The entire matched string. not used here.
        // $1: The first group. The first alphabet.
        // $2: The second group. The rest alphabets.
        return $1.toUpperCase() + $2.toLowerCase();
    });
}

例子:

happyCamelize('HONKA-HONKA') // "Honka-Honka"

注意这段代码不会改变单字长度。

happyCamelize('h') // => "h"
happyCamelize('H') // => "H"

如果你还想驼峰化单个长度的单词,使用/([a-z])([a-z]*)/gi

关于javascript - 在 Camel 案例转换中让 Camel 开心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19266337/

相关文章:

javascript - 克隆函数实现中 ' this '关键字的执行上下文

Javascript 在本地工作,但不在 Github Pages 网站上工作

javascript - 读取文件和字符串相等问题

JavaScript - 如何在函数内部调用函数?

regex - Powershell正则表达式匹配字符串末尾的vhd或vhdx

匹配 postgresql bytea 的正则表达式

javascript - 使用 javascript 删除主页内容

需要全局匹配帮助的 JavaScript 正则表达式

ios - 在 iOS 中使用正则表达式进行验证

regex - 在 VI 中搜索和替换正则表达式,需要说明