본문 바로가기
Javascript

정규식 표현

by 코딩대원 2022. 8. 17.

정규식 표현

정규 표현식 또는 정규식은 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식언어입니다.


01. 정규표현식 객체 주요 패턴

패턴 설명
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-z] 알파벳 소문자 문자를 검색합니다.
[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'
{} /₩{3}/은 숫자 3개를 의미합니다.
/₩{3,5}/은 숫자 3~5개를 의미합니다.
/₩d{3,}/은 숫자 3개 이상을 의미합니다.
a|b a or b를 의미합니다.
(abc) 그룹화를 의미합니다.

02. 예제

{
    <!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>정규표현식 객체</title>
    <script>
        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));
    </script>
</head>
<body>
</body>
</html>
}
결과보기
false
true
false
true
true
false

03. 예제 풀이

₩d{10,11}

₩d는 숫자를 의미하고 {10,11}는 10~11자를 의미합니다.

[A-Za-z0-9!#$%^&*_-]

이메일 아이디 부분에 해당하며 영문, 숫자, 특수문자 중 하나의 문자를 의미합니다.

[A-Za-z0-9!#$%^&*_-]+

이메일 아이디 부분에 해당하며 영문, 숫자, 특수문자 중 하나의 문자가 1번 이상 반복해서 나와야 하기 때문에 + 패턴을 추가합니다.

[A-Za-z0-9!#$%^&*_-]+@

이메일의 '이메일 아이디@' 패턴을 만듭니다.

[A-Za-z0-9!#$%^&*_-]+@[A-Za-z0_-]+

이메일 주소 앞부분에 해당하며 영문, 숫자, 특수문자 중 하나의 문자가 1번 이상 반복해서 올 수 있습니다. '이메일 아이디@이메일 앞 주소'

[A-Za-z0-9!#$%^&*_-]+@[A-Za-z0_-]+(₩.[A-Za-z0-9_-]+){1,2}

이메일 주소 나머지 부분에 해당하면 '.나머지 주소'가 1번~2번 올 수 있습니다.
'이메일 아이디@이메일 앞 주소. 나머지 주소' 또는 '이메일 아이디@이메일 앞 주소.나머지 주소.나머지 주소'

'Javascript' 카테고리의 다른 글

indexOf() / lastIndexOf()  (2) 2022.08.17
문자열 객체 slice() / substring() / substr()  (5) 2022.08.17
내장 함수  (5) 2022.08.12
배열 객체 join() / push() / pop()  (5) 2022.08.11
요소 선택  (7) 2022.08.06

댓글


HTML
CSS

JAVASCRIPT

자세히 보기