문제

  • 문자열의 소문자 개수를 계산한다.

풀이 01

function countLowercase(str) {
  return str.replace(/[^a-z]/g, '').length;
}

countLowercase('');          // 0
countLowercase('abcdEFGH');  // 4
countLowercase('@#!?abcd');  // 4

정규표현식 (RegExp)

  • replace(): 대응되는 문자열을 찾아 다른 문자열로 치환한다.
  • [^ ]: 부정 (= not)
  • g: 전역 검색

풀이 02

function countLowercase(str) {
  return (str.match(/[a-z]/g) || []).length;
}

countLowercase('');          // 0
countLowercase('abcdEFGH');  // 4
countLowercase('@#!?abcd');  // 4

정규표현식 (RegExp)

  • match(): 문자열에서 정규식과 일치하는 문자를 검색하고, 배열로 반환한다.

풀이 03

function countLowercase(str) {
  return str.match(/[a-z]/g) ? str.match(/[a-z]/g).length : 0;
}

countLowercase('');          // 0
countLowercase('abcdEFGH');  // 4
countLowercase('@#!?abcd');  // 4