NATIVE

settings_applicationsObject  >   settings_applicationsString  >   settings_applications[[Prototype]]

NATIVE

Editing
  • account_tree
  • bug_report

Arrayresultmatch(RegExpregExp)

현재 문자열이 지정된 정규식과 매칭되는 부분을 테스트한다.

구문

형식
str.match(regExp)

매개 변수

RegExpregExp필수

정규표현식 객체를 설정한다. 정규표현식 객체에 대해서는 RegExp를 참고하길 바란다.

반환

Arrayresult

지정된 정규표현식과 일치하는 경우 g 플래그가 포함되었다면 일치하는 모든 문자열을 원소로 갖는 배열을 반환한다.  g 플래그가 포함되어 있지 않다면 일치하는 첫 번째 문자열만 원소로 갖는 배열을 반환한다. 일치하는 게 없다면 null을 반환한다.

기술 문서

이메일 유효성을 검증하는 정규표현식과 match() 메소드의 사용

정규표현식 패턴

var emailRegexp = /[0-9a-zA-Z][_0-9a-zA-Z-]*@[_0-9a-zA-Z-]+(.[_0-9a-zA-Z-]+){1,2}$/;

emailRegexp라는 변수를 선언하고 리터럴로 정규표현식 객체를 생성한다. 리터럴이 아닌 방식으로 정규표현식 인스턴스 객체를 생성하는 경우에는 아래와 같이 new 키워드를 이용해서 RegExp() 생성자 함수를 실행한다. 생성자 함수의 인수로 정규표현식 패턴을 설정한다.

var emailRegexp = new RegExp("[0-9a-zA-Z][_0-9a-zA-Z-]*@[_0-9a-zA-Z-]+(.[_0-9a-zA-Z-]+){1,2}$");

정규표현식 패턴은 매우 복잡하여 초보자(때론 중급자)가 직접 원하는 패턴을 작성하기가 어려울 수 있다. 쉬운 패턴 작성부터 시작하여 차근차근 공부하면 충분히 해낼 수 있으며 정규표현식을 잘 다루게 되면 막강한 무기를 장착했다고 볼 수 있다.

위의 이메일을 검증하는 패턴을 잠깐 분석한다면 이메일 주소는 일반적으로 영문과 숫자, -, _ 의 문자 조합으로 된 이메일 아이디와 그 뒤에 @이 붙는다. @ 뒤에는 각 이메일 호스트로 구성된다. 따라서 이러한 이메일 주소 패턴을 정규표현식으로 작성하면 된다.

패턴 중에 '[0-9a-zA-Z]'은 한 문자열 속에 0에서 9까지 범위의 숫자 또는 소문자인 a에서 z까지의 알파벳과 대문자인 A에서 Z까지의 알파벳의 조합으로 구성되어야 한다는 뜻을 가지고 있다. 이렇게 정규표현식의 패턴을 작성할 때는 다양한 규칙이 있고 이 규칙을 활용하여 원하는 검사 패턴을 작성한다.

정규표현식에 대한 자세한 내용은 해당 객체인 RegExp 레퍼런스를 참조하길 바란다. 

예제로 제공된 정규표현식 패턴은 올바른 이메일 주소를 검증하는 것으로 실제 코드에 사용하여도 훌륭하게 작동한다.

match()는 지정된 정규표현식 객체를 이용하여 해당 문자열을 검색한다. 샘플로 제시된 정규표현식 패턴은 g 플래그가 포함되지 않았으므로 일치하는 첫 번째 문자열을 원소로 갖는 배열을 반환한다. 일치하지 않는 경우에는 null 을 반환하므로 if 문으로 분기가 가능하다. 즉 null은 불리언(boolean)으로 강제 형변환이 되면 false가 된다.

버전 명세

ECMAScript 2024(15th Edition)
#sec-string.prototype.match

지원 웹브라우저