Convert string to camel case
7997 ワード
Description:
Complete the method/function so that it converts dash/underscore delimited words into camel casing. The first word within the output should be capitalized only if the original word was capitalized (known as Upper Camel Case, also often referred to as Pascal case).
Examples
"the-stealth-warrior"
gets converted to "theStealthWarrior""The_Stealth_Warrior"
gets converted to "TheStealthWarrior"
My solution:
function toCamelCase(str){
let array = [];
if(str.includes('-')) {
array = str.split('-');
}
else if(str.includes('_')) {
array = str.split('_');
}
else {
array.push(str);
}
for(i=1;i<array.length;i++) {
const key = array[i][0].toUpperCase();
const arrayUpper = array[i].split('');
arrayUpper[0] = key;
array[i] = arrayUpper.join('');
}
array.join('');
return array.join('');
}
コードから分かるように、私は以下のプロセスを経験しました.文字列に関連付けられたシンボルでグループ化して配列に保存
ex) [the, stealth, warrior]
配列内の各文字列で変更する文字列を配列に変換
ex) 'stealth' → [s,t,e,a,l,t,h]
配列の最初の文字を大文字に変更
[s,t,e,a,l,t,h] → [S,t,e,a,l,t,h]
配列を再結合します.
[S,t,e,a,l,t,h] → 'Stealth'
アレイ全体を再結合し、アレイを文字列に変換
[the,Stealth,Warrior] →'theStealthWarrior'
Best solutions:
function toCamelCase(str){
var regExp=/[-_]\w/ig;
return str.replace(regExp,function(match){
return match.charAt(1).toUpperCase();
});
}
正規表現役立つサイト
[-_]\w
-文字で囲まれた和のいずれかを含む
ig
case insensition&すべての関連コンテンツの検索
string.replace(regexp|substr, newSubstr|function)
一致する部分またはすべての部分が置換された新しい文字列を返します.
regexpを最初のパラメータとして与えると、上図に示すように、2番目のパラメータを関数のパラメータとすると、対応するregexpのパラメータが追加されます.gをフラグとして使用すると、一致するたびに関数が呼び出されます.
charAt(index)
インデックス内の文字列を返します.
Reference
この問題について(Convert string to camel case), 我々は、より多くの情報をここで見つけました https://velog.io/@gtfo/Convert-string-to-camel-caseテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol