JavaScript에서 문자열의 특정 문자가 대문자인지 소문자인지 확인하려면 toUpperCase()와 toLowerCase() 메서드를 활용하면 됩니다. 핵심 원리는 간단합니다. 문자를 해당 케이스로 변환한 뒤 원본과 비교하여 변환 여부를 판단하는 것입니다.
동작 원리
예를 들어 문자 'a'에 toUpperCase()를 적용하면 'A'가 되어 원본과 달라지므로 소문자임을 알 수 있습니다. 반대로 'A'에 toUpperCase()를 적용하면 그대로 'A'이므로 대문자라고 판단할 수 있습니다. 숫자나 특수문자처럼 대소문자 구분이 없는 경우에는 isNaN()을 사용해 먼저 숫자 여부를 걸러주는 것이 좋습니다.
예제 코드
function checkCase(ch) {
if (!isNaN(ch * 1)){
return 'ch is numeric';
}
else {
if (ch == ch.toUpperCase()) {
return 'upper case';
}
if (ch == ch.toLowerCase()){
return 'lower case';
}
}
}
console.log(checkCase('a'))
console.log(checkCase('A'))
console.log(checkCase('1'))실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
lower case upper case ch is numeric
코드 설명
checkCase 함수는 먼저 isNaN(ch * 1)을 통해 전달받은 문자가 숫자인지 검사합니다. 숫자라면 'numeric'을 반환하고 종료됩니다. 숫자가 아니라면 toUpperCase() 변환 결과와 원본을 비교하여 같으면 대문자, toLowerCase() 변환 결과와 같으면 소문자로 판별합니다.
참고로 정규표현식을 사용하는 /[A-Z]/.test(ch) 또는 /[a-z]/.test(ch) 방식으로도 동일한 판별이 가능하며, 영문자 외의 유니코드 문자까지 고려해야 한다면 정규표현식 접근이 더 유연할 수 있습니다.