让骆驼在骆驼案件转换中感到高兴

Kon*_*ten 6 javascript regex

我已经编写了骆驼套管字符串的功能(要求是在一个单词的开头和每个连字符之后启动字符,这是针对个人名字的).

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

现在,我想使我的骆驼快乐所以,即使是字符串的第一个字符(不是后面的间隔也没有连字符),就会被抛弃行动.Id est,而不是:

HONKA-HONKA - > honka-Honka

我想得到

HONKA-HONKA - > Honka-Honka

目前我被困住了,可能是因为烦恼.所有的骆驼是郁闷等了一此外 - 什么是我所说的悲伤/快乐的骆驼(头下/上)正确的术语?

fal*_*tru 7

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();
    });
}
Run Code Online (Sandbox Code Playgroud)

例:

happyCamelize('HONKA-HONKA') // "Honka-Honka"
Run Code Online (Sandbox Code Playgroud)

注意此代码不会更改单个长度的单词.

happyCamelize('h') // => "h"
happyCamelize('H') // => "H"
Run Code Online (Sandbox Code Playgroud)

如果你想同时使用单长度单词,请使用/([a-z])([a-z]*)/gi.