본문 바로가기
JavaScript

정규식 표현

by SyuMay 2022. 8. 16.
728x90

정규 표현식

정규표현식 개체는 정해진 문자의 패턴을 만들 때 사용합니다.

var reg = /Javascript/;
var reg = new RegExp('Javascript');


정규표현식 객체 주요 메서드

속성값 속성 설명
test() 정규표현식과 일치하는 문자열이 있으면 true,없으면 false를 반환합니다.
var reg = /Javascript/;
consloe.log(reg.test('Javascript')) // true
consloe.log(reg.test('script')) // false
match() a,b,c 중 문자 하나를 검색합니다.
정규표현식과 일치하는 문자열을 배열로 만듭니다. 일치하는 문자열이 없으면 null을 반환합니다.
var reg = /Javascript/;
str = 'Java script';
consloe.log(reg.match('script')) // null

정규표현식 객체 플래그

플래그 설명
i 대소문자 구분 없이 정규표현식과 문자열을 비교합니다.
ar 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'은 행 바꿈을 의미합니다.

정규식 패턴

패턴 설명
abc abc 문자열을 검색합니다.
/abc/는 'abc'
[abc] a,b,c 중 문자 하나를 검색합니다.
/[abc]d/는 'ad', 'bd', 'cd'
[^abc] a,b,c를 제외한 문자 하나를 검색합니다.
/[^abc]/는 'ed','fd,'gd'
[A-Z] 알파벳 대문자 문자를 검색합니다.
[a-z] 알파벳 소문자 문자를 검색합니다.
[0-9] 0-까지의 숫자를 검색합니다.
. 하나의 문자를 검새합니다. 만약 '마침표' 문자 그대로의 의미를 사용할 경우 '₩'으로 표현해야 합니다.
\w 알파벳, 숫자, _를 검색합니다.
\W 알파벳, 숫자, _를 제외하고 검색합니다.
\d 숫자를 검색합니다.
\D 숫자를 제외하고 검색합니다.
\s 하나의 공백을 검색합니다.
\S 공백 제외하고 검색합니다.
^ 행의 첫 문자가 일치해야 함을 의미합니다.
$ 행의 끝 문자가 일치해야 함을 의미합니다.
* * 앞의 문자가 0번 이상 반복을 의미합니다.
/a*b/는 'b', 'ab', 'aab', 'aaa...b'
+ + 앞의 문자가 1번 이상 반복을 의미 합니다.
/a+b/는 'ab', 'aab', 'aaab', 'aaa...b'
? ? 앞의 문자가 0번 또는 1번 의미합니다.
/a?b/는 'b', 'ab'
{} /₩{3}/은 숫자 3개를 의미합니다
/₩{3,5}/은 숫자 3~5개를 의미합니다
/₩{3,}/은 숫자 3개 이상을 의미합니다
a|b a or b를 의미합니다
( abc ) 그룹화를 의미합니다.
let hpReg = /^\d{10,11}$/;
let emailReg = /^[A-Za-z0-9!#$%^&*_-]+@[A-Za-z0-9_-]+(\.[A-Za-z0-9_-]+){1,2}$/;
let hp1 = '010123456';
let hp2 = '01012345678';
let email1 = 'abc&1_23&A-BC@icox';
let email2 = 'abc&1_23&A-BC@icox.com';
let email3 = 'abc&1_23&A-BC@icox.co.kr';
let 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));
결과 확인하기

정규표현식 풀이

\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-9_-]+
이메일 주소 앞부분에 해당하며 영문, 숫자, 특수문자 중 하나의 문자가 1번 이상 반복해서 올 수 있습니다. '이메일 아이디@이메일 앞 주소'

[A-Za-z0-9!#$%^&*_-]+@[A-Za-z0-9_-]+(\.[A-Za-z0-9_-]+){1,2}
이메일 주소 나머지 부분에 해당하면 '.나머지 주소'가 1번~2번 올 수 있습니다.
'이메일 아이디@이메일 앞 주소.나머지 주소' 또는 '이메일 아이디@이메일 앞 주소.나머지 주소.나머지 주소'
728x90
반응형

'JavaScript' 카테고리의 다른 글

indexOf() | lastindexOf()  (8) 2022.08.16
slice() | substring() | substr()  (7) 2022.08.16
내장 함수  (4) 2022.08.15
Array 의 메서드 join( ) | push( ) | pop( )  (13) 2022.08.11
요소 선택  (8) 2022.08.07

댓글


자바스크립트 사진

JavaScript

자세히보기