JavaScript/문자열

[JavaScript]첫 번째 문자열이 대문자인지 소문자인지 체크하는 방법

DevStory 2022. 9. 18.

첫 번째 문자열이 대문자인지 소문자인지 체크하는 방법

이번 포스팅은 JavaScript에서 첫 번째 문자열이 대문자인지 소문자인지 체크하는 몇 가지 방법을 소개합니다.


방법 1. toUpperCase 메서드 또는 toLowerCase 메서드

첫 번째 방법으로 toUpperCase() 메서드 또는 toLowerCase() 메서드를 사용할 수 있습니다.

 

toUppderCase() 메서드는 문자열을 대문자로 변환하고 toLowerCase() 메서드는 문자열을 소문자로 변환합니다.

 

[대소문자 체크 방법]

순서 1. 첫 번째 문자열을 가져옵니다.

순서 2. toUpperCase() 메서드 또는 toLowerCase() 메서드를 호출하여 대문자 또는 소문자로 변환합니다.

순서 3. 첫 번째 문자열을 대소문자로 변환된 문자열과 비교하여 대문자인지 소문자인지 체크합니다.

 

다음 예제는 toUpperCase() 메서드와 toLowerCase() 메서드를 사용하여 첫 번째 문자열이 대문자 또는 소문자인지 체크합니다.

function isUpper(strValue) {
  let firstStrValue = strValue.charAt(0);
    
  if(firstStrValue === firstStrValue.toUpperCase()) {
    return true;
  }
  return false;
}

function isLower(strValue) {
  let firstStrValue = strValue.charAt(0);
    
  if(firstStrValue === firstStrValue.toLowerCase()) {
    return true;
  }
  return false;
}

console.log('\'Java\'의 첫 번째 문자열은 대문자인가? ' + isUpper('Java'));
console.log('\'Java\'의 첫 번째 문자열은 소문자인가? ' + isLower('Java'));

console.log('\'java\'의 첫 번째 문자열은 대문자인가? ' + isUpper('java'));
console.log('\'java\'의 첫 번째 문자열은 소문자인가? ' + isLower('java'));

[실행 결과]

'Java'의 첫 번째 문자열은 대문자인가? true
'Java'의 첫 번째 문자열은 소문자인가? false
'java'의 첫 번째 문자열은 대문자인가? false
'java'의 첫 번째 문자열은 소문자인가? true

 

참고로 빈 문자열의 첫 번째 문자열을 대괄호 표기법으로 가져오는 경우 undefined를 반환하며, charAt() 메서드로 가져오는 경우 빈 문자열("")을 반환합니다.

 

따라서, 대괄호 표기법보다 charAt() 메서드를 사용하여 첫 번째 문자열을 가져오는 방법이 안전합니다.

console.log(''.charAt(0)); // ''
console.log(''[0]);        // undefined

방법 2. match() 메서드와 정규 표현식

두 번째 방법으로 문자열의 match() 메서드에 정규 표현식을 전달하여 첫 번째 문자열이 대문자인지 소문자인지 체크할 수 있습니다.

 

match() 메서드는 정규 표현식과 일치하는 문자열이 존재하면 배열을 반환하지만, 일치하는 문자열이 없으면 null을 반환합니다.

 

따라서, match() 메서드의 반환 결과가 null인지 체크하여 첫 번째 문자열이 대문자인지 소문자인지 확인할 수 있습니다.

 

다음 예제는 정규 표현식을 사용하여 첫 번째 문자열이 대문자 또는 소문자인지 체크합니다.

function isUpper(strValue) {
  let firstStrValue = strValue.charAt(0);
  return firstStrValue.match(new RegExp(/^[A-Z]/)) !== null;    
}

function isLower(strValue) {
  let firstStrValue = strValue.charAt(0);
  return firstStrValue.match(new RegExp(/^[a-z]/)) !== null;  
}

console.log('\'Java\'의 첫 번째 문자열은 대문자인가? ' + isUpper('Java'));
console.log('\'Java\'의 첫 번째 문자열은 소문자인가? ' + isLower('Java'));

console.log('\'java\'의 첫 번째 문자열은 대문자인가? ' + isUpper('java'));
console.log('\'java\'의 첫 번째 문자열은 소문자인가? ' + isLower('java'));

[실행 결과]

'Java'의 첫 번째 문자열은 대문자인가? true
'Java'의 첫 번째 문자열은 소문자인가? false
'java'의 첫 번째 문자열은 대문자인가? false
'java'의 첫 번째 문자열은 소문자인가? true

방법 3. 아스키코드

마지막 방법으로 문자열을 UTF-16 방식으로 인코딩하여 아스키코드 범위에 속하는지 체크합니다.

 

영어 대문자의 아스키코드 범위는 A(65)부터 Z(90)까지이며, 소문자의 아스키코드 범위는 a(97)부터 z(122)까지입니다.

 

다음 예제는 아스키코드를 사용하여 첫 번째 문자열이 대문자 또는 소문자인지 체크합니다.

function isUpper(strValue) {
  let firstStrValue = strValue.charCodeAt(0);
  return firstStrValue >= 65 && firstStrValue <= 90;    
}

function isLower(strValue) {
  let firstStrValue = strValue.charCodeAt(0);
  return firstStrValue >= 97 && firstStrValue <= 122;
}

console.log('\'Java\'의 첫 번째 문자열은 대문자인가? ' + isUpper('Java'));
console.log('\'Java\'의 첫 번째 문자열은 소문자인가? ' + isLower('Java'));

console.log('\'java\'의 첫 번째 문자열은 대문자인가? ' + isUpper('java'));
console.log('\'java\'의 첫 번째 문자열은 소문자인가? ' + isLower('java'));

[실행 결과]

'Java'의 첫 번째 문자열은 대문자인가? true
'Java'의 첫 번째 문자열은 소문자인가? false
'java'의 첫 번째 문자열은 대문자인가? false
'java'의 첫 번째 문자열은 소문자인가? true
반응형

댓글