본 포스팅은 JavaScript에서 두 개의 문자열을 비교하는 방법을 소개합니다.


방법 1. 동치 연산자(===)

두 피연산자의 값과 데이터 타입을 같이 비교하는 동치 연산자를 사용하여 두 개의 문자열을 비교할 수 있다.

const str1 = "Java";
const str2 = "Java";

console.log(str1 === str2); // true

다음 예시처럼 숫자 10이랑 문자열 “10”을 비교하면 데이터 타입이 다르므로 동치 연산자는 false를 반환한다.

const str1 = 10;
const str2 = "10";

console.log(str1 === str2); // false

하지만, 동등 연산자로 값을 비교하면 타입 변환 규칙에 의해 문자열을 숫자로 변환 후 값을 비교하므로 true를 반환한다.

const str1 = 10;
const str2 = "10";

console.log(str1 == str2); // true 

방법 2. localeCompare() 메서드

두 개의 문자열을 사전적 순서로 비교하고 싶은 경우 localeCompare() 메서드를 사용할 수 있다. localeCompare() 메서드의 반환 결과는 다음과 같다.

  • -1: 첫 번째 문자열이 두 번째 문자열보다 사전적으로 앞에 위치한다.
  • 0: 두 문자열이 사전적으로 동일하다.
  • 1: 첫 번째 문자열이 두 번째 문자열보다 사전적으로 뒤에 위치한다.

다음 예시는 첫 번째 문자열 “apple”이 두 번째 문자열”banana”보다 앞에 있으므로 -1을 반환한다.

const str1 = "apple";
const str2 = "banana";
const isCompare = str1.localeCompare(str2);

console.log(isCompare); // -1

반대로 첫 번째 문자열이 “banana”고 두 번째 문자열이 “apple”인 경우 1을 반환한다.

const str1 = "banana";
const str2 = "apple";
const isCompare = str1.localeCompare(str2);

console.log(isCompare); // -1

방법 3. 대소문자 구분 없이 비교

대소문자 구분 없이 문자열을 비교하려면 두 개의 문자열을 대문자나 소문자로 변환 후 동치 연산자로 값을 비교한다.

  • toUpperCase(): 문자열을 대문자로 변환한다.
  • toLowerCase(): 문자열을 소문자로 변환한다.
const str1 = "javaSCRIPT";
const str2 = "JAVAscript";
const isCompare = str1.toUpperCase() === str2.toUpperCase();

console.log(isCompare); // true

방법 4. 정규 표현식

마지막 방법으로 정규표현식으로 두 개의 문자열이 동일한지 비교할 수 있다.

  • RegExp() 생성자를 사용하여 정규 표현식 객체 pattern을 생성한다.
  • ^로 문자열의 시작, $로 문자열의 끝을 지정한다.
const str1 = "JAVAscript";
const str2 = "javaSCRIPT";

const pattern = new RegExp(`^${str1}$`);
const isCompare = pattern.test(str2);

console.log(isCompare);  // false

대소문자 구분 없이 문자열을 비교하고 싶은 경우 RegExp() 생성자 함수의 두 번째 매개변수로 “i”를 전달한다. “i” 플래그는 대소문자 구분하지 않고 일치하는 패턴을 찾도록 지정해주는 플래그다.

const str1 = "JAVAscript";
const str2 = "javaSCRIPT";

const pattern = new RegExp(`^${str1}$`, "i");
const isCompare = pattern.test(str2);

console.log(isCompare);  // true

참고

  1. Compare Two Strings in JavaScript
  2. JavaScript Program to Compare Two Strings
  3. [JavaScript]문자열 비교하는 방법

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다