https://programmers.co.kr/learn/courses/30/lessons/12951
function solution(s) {
let answer='';
s=s.toLowerCase().split(' ');
for(let x of s){
if(x[0].charCodeAt()>=97 && x[0].charCodeAt()<=122){
answer+=x[0].toUpperCase();
}
else answer+=x[0];
for(let i=1; i<x.length; i++){
answer+=x[i];
}
answer+=' ';
}
return answer.trim();
}
이중 for문을 써서 그런지... 런타임 에러가 났다...!
function solution(s) {
return s.toLowerCase().replace(/\b[a-z]/g, letter => letter.toUpperCase());
}
정규표현식을 통해 간단하게 풀 수 있었다. 처음엔 replace할 때, 어떻게 replace를 할 문자를 가져올지 몰랐는데 letter => letter.toUpperCase()
처럼 불러올 수 있었다. (참고)
replace는 원래 처음으로 발견된 값만 대체해주지만, 정규식을 활용해서 모든 경우를 다 대체할 수 있다. (참고)
10/27
replace를 할 문자 가져오는 패턴 익히기