Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 문자열이 구두점으로 시작하는지 확인하는 방법

JavaScript로 문자열을 다루다 보면, 해당 문자열이 물음표(?), 마침표(.), 쉼표(,) 같은 구두점(punctuation)으로 시작하는지 확인해야 하는 경우가 있습니다. 이럴 때 정규 표현식(Regular Expression)을 활용하면 간단하게 처리할 수 있습니다.

예제 상황

예를 들어 아래와 같은 두 개의 문자열이 있다고 가정해 보겠습니다. 두 번째 문장은 물음표(?) 즉, 구두점으로 시작합니다.

var sentence1 = 'My Name is John Smith.'
var sentence2 = '? My Name is John Smith.'

이 두 문장 중 어떤 것이 구두점으로 시작하는지 확인하는 코드는 다음과 같습니다.

구현 코드

먼저 문자열의 시작(^)에 구두점이 있는지 검사하는 정규 표현식을 정의합니다. 여기서는 마침표(.), 쉼표(,), 콜론(:), 느낌표(!), 물음표(?)를 대상으로 합니다.

var punctuationDetailsRegularExpression = /^[.,:!?]/

var sentence1 = 'My Name is John Smith.'
var output1 = !!sentence1.match(punctuationDetailsRegularExpression)
if (output1 == true)
    console.log("This (" + sentence1 + ") starts with a punctuation");
else
    console.log("This (" + sentence1 + ") does not start with a punctuation");

var sentence2 = '? My Name is John Smith.'
var output2 = !!sentence2.match(punctuationDetailsRegularExpression)
if (output2 == true)
    console.log("This (" + sentence2 + ") starts with a punctuation");
else
    console.log("This (" + sentence2 + ") does not start with a punctuation");

코드 설명

  • /^[.,:!?]/ : 캐럿(^)은 문자열의 시작을 의미하며, 대괄호 안의 문자 중 하나가 맨 앞에 오는지 검사합니다.
  • sentence.match(...) : 정규 표현식과 일치하면 결과 배열을 반환하고, 일치하지 않으면 null을 반환합니다.
  • !!(더블 논리 부정) : match 결과를 명확한 불리언 값(true/false)으로 변환해 줍니다.

프로그램 실행 방법

위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 사용합니다.

node fileName.js

여기서는 파일 이름이 demo209.js라고 가정합니다.

실행 결과

프로그램을 실행하면 아래와 같은 출력 결과를 확인할 수 있습니다.

PS C:\Users\Amit\javascript-code> node demo209.js
This (My Name is John Smith.) does not start with a punctuation
This (? My Name is John Smith.) starts with a punctuation

결과를 보면 첫 번째 문장은 일반 문자로 시작하기 때문에 "구두점으로 시작하지 않는다"고 판별되었고, 두 번째 문장은 물음표(?)로 시작하기 때문에 "구두점으로 시작한다"고 올바르게 판별된 것을 알 수 있습니다.

추가 팁: startsWith() 메서드 활용

ES6 이상 환경이라면 startsWith() 메서드와 정규 표현식을 조합한 test() 메서드를 사용할 수도 있습니다.

const regex = /^[.,:!?]/;
const str = '? Hello World';
console.log(regex.test(str)); // true

test() 메서드는 일치 여부를 바로 불리언으로 반환하므로 코드가 더욱 간결해집니다. 상황에 맞게 적절한 방법을 선택하여 사용하시기 바랍니다.