我已经编写了骆驼套管字符串的功能(要求是在一个单词的开头和每个连字符之后启动字符,这是针对个人名字的).
function sadCamelize(input) { return input.toLowerCase().replace(/([-\s])(.)/g,function(match,separator,starter) { return separator + starter.toUpperCase(); }); }
现在,我想让我的骆驼快乐,这样即使是弦乐的第一个字符(不是后续的空格也不是连字符),都会被踢出去. Id est,而不是:
HONKA-HONKA -> honka-Honka
我想得到
HONKA-HONKA -> Honka-Honka
目前我被困住了,可能是因为烦恼.所有的骆驼都是沮丧的,所以我也是一个.而且 – 我称之为悲伤/快乐的骆驼(低头/向上)的正确命名是什么?
解决方法
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.