我已经编写了驼峰套管字符串的功能(要求是在单词的开头和每个连字符之后启动字符,这是针对个人姓名的。)
function sadCamelize(input) {
return input.toLowerCase().replace(/([-\s])(.)/g,
function(match, separator, starter) {
return separator + starter.toUpperCase();
});
}
现在,我想让我的骆驼开心,这样即使是弦乐的第一个字符(不是空格也不是连字符),都会被踢出去。 Id est,而不是:
HONKA-HONKA - >洪卡-洪卡
我想得到
HONKA-HONKA - >洪卡-洪卡
目前我被困住了,可能是因为烦恼。所有的骆驼都是沮丧的,所以我也是。而且 - 我称之为悲伤/快乐的骆驼(低头/向上)的正确命名是什么?
答案 0 :(得分: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();
});
}
示例:
happyCamelize('HONKA-HONKA') // "Honka-Honka"
注意此代码不会更改单个字长。
happyCamelize('h') // => "h"
happyCamelize('H') // => "H"
如果您还希望使用单长字,请使用/([a-z])([a-z]*)/gi
。
答案 1 :(得分:4)
这个丑陋的衬垫可以完成这项任务。
"HONKA-HONKA".toLowerCase().split(/\b/g).map(function(word) { return word[0].toUpperCase() + word.slice(1)}).join('')
让我爆炸它:
"HONKA-HONKA".toLowerCase().split(/\b/g).map(function(word) {
return word[0].toUpperCase() + word.slice(1);
}).join('');
现在换成一个函数
function sadCamelize(str) {
return str.toLowerCase().split(/\b/g).map(function(word) {
return word[0].toUpperCase() + word.slice(1);
}).join('');
}
以下是行动顺序:
答案 2 :(得分:2)
你的问题的第一部分已由下面的lukas回答,所以我将回答第二部分。
honkaHonka = camelCase
HonkaHonka = PascalCase
还有其他变体和同义词。见这里:http://en.wikipedia.org/wiki/CamelCase#Variations_and_synonyms