Giant Danio Fish
본문 바로가기
Javascript

정규식 표현

by 코딩왕자 2022. 8. 16.

정규 표현식

정규 표현식, 또는 정규식은 문자열에서 특정 문자 조합을 찾기 위한 패턴입니다.


정규 표현식 객체 주요 패턴

패턴 설명
abc abc 문자열을 검색합니다.
/abc/는 'abc'
[abc] a, b, c 중 문자 하나를 검색합니다.
/[abc]d/는 'ad', 'bd', 'cd'
[^abc] a, b, c를 제외한 문자 하나를 검색합니다.
/[^abc]d/는 'ed', 'fd', 'gd'
[A-Z] 알파벳 대문자 문자를 검색합니다.
[a-a] 알파벳 소문자 문자를 검색합니다.
[0-9] 0-9까지의 숫자를 검색합니다.
. 하나의 문자를 검색합니다. 만약 '마침표' 문자 그대로의 의미를 사용할 경우 '₩.'으로 표현해야 합니다.
\w 알파벳, 숫자, _를 검색합니다.
\W 알파벳, 숫자, _를 제외하고 검색합니다.
\d 숫자를 검색합니다.
\D 숫자를 제외하고 검색합니다.
\s 하나의 공백을 검색합니다.
\S 공백을 제외하고 검색합니다.
^ 행의 첫 문자가 일치해야 함을 의미합니다.
$ 행의 끝 문자가 일치해야 함을 의미합니다.
* * 앞의 문자가 0번 이상 반복을 의미합니다.
/a*b/는 'b', 'ab', 'aab', 'aaab', 'aaa...b'
+ +앞의 문자가 1번 이상 반복을 의미합니다.
/a+b/는 'ab', 'aab', 'aaab', 'aaa...b'
? ? 앞의 문자가 0번 또는 1번 의미합니다.
/a?b/는 'b', 'ab'
{} /₩d{3}/은 숫자 3개를 의미합니다.
/₩d{3,5}/은 숫자 3~5개를 의미합니다.
/₩d{3,}/은 숫자 3개 이상을 의미합니다.
a|b a or b를 의미합니다.
(abc) 그룹화를 의미합니다.

정규 표현식 객체 플래그

플래그 설명
i 대소문자 구분 없이 정규표현식과 문자열을 비교합니다.
var reg1 = /javascript/;
var reg2 = /javascript/i;
var str = 'Javascript';
console.log(reg1.test(str)); // false
console.log(reg2.test(str)); // true
g 문자열 전체를 정규표현식과 비교합니다.
var reg1 = /a/;
var reg2 = /a/g;
var str = 'javascript';
console.log(str.match(reg1)); //['a']
console.log(str.match(reg2)); //['a','a']
m 여러 행의 문자열을 정규표현식과 비교합니다
var reg1 = /^s/;
var reg2 = /^s/m;
var str = 'javascript₩nscrirpt';
console.log(str.match(reg1)); // null
console.log(str.match(reg2)); // ['s']
'^s'는 행의 첫 번째 문자가 s로 시작하는 것을 의미하고 '₩n'은 행 바꿈을 의미합니다.

예시

var hpReg = /^\d{10,11}$/;
var emailReg = /^[A-Za-z0-9!#$%^&*_-]+@[A-Za-z0-9_-]+(\.[A-Za-z0-9_-]+){1,2}$/;
var hp1 = '010123456';
var hp2 = '01012345678';
var email1 = 'abc&1_23&A-BC@icox';
var email2 = 'abc&1_23&A-BC@icox.com';
var email3 = 'abc&1_23&A-BC@icox.co.kr';
var email4 = 'abc&1_23&A-BC@icox.abc.co.kr';
console.log(hpReg.test(hp1));
console.log(hpReg.test(hp2));
console.log(emailReg.test(email1));
console.log(emailReg.test(email2));
console.log(emailReg.test(email3));
console.log(emailReg.test(email4));
결과
false
true
false
true
true
false

댓글


광고 준비중입니다