728x90
반응형
정규표현식(RegExp)
정규표현식 객체는 정해진 문자의 패턴을 만들 때 사용합니다.
문자나 숫자 패턴 같은 간단한 정규표현식부터 조금씩 연습하는 것이 좋습니다.
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() | 정규표현식과 일치하는 문자열을 배열로 만듭니다. 일치하는 문자열이 없으면 null을 반환합니다. |
var reg = /Javascript/; str = 'Java script'; consloe.log(str.match('reg')); // null |
정규표현식 객체 플래그
플래그 | 설명 |
---|---|
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'은 행 바꿈을 의미합니다. |
정규표현식 객체 주요 패턴
패턴 | 설명 |
---|---|
abc | abc 문자열을 검색합니다. /abc/는 'abc' |
[abc] | a, b, c 중 문자 하나를 검색합니다. /[abc]d/는 'ab', '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' |
{} | /₩d{3}/은 숫자 3개를 의미합니다. /₩d{3,5}/은 숫자 3~5개를 의미합니다. /₩d{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));
결과 확인하기
true
false
true
true
false
정규표현식 풀이
₩\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번 올 수 있습니다. '이메일 아이디@이메일 앞 주소.나머지 주소' 또는 '이메일 아이디@이메일 앞 주소.나머지 주소.나머지 주소'
₩\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' 카테고리의 다른 글
JavaScript slice() / substring() / substr() (3) | 2022.08.16 |
---|---|
JavaScript indexOf() / lastIndexOf (4) | 2022.08.16 |
JavaScript 내장 함수 (3) | 2022.08.14 |
JavaScript 배열 메서드 - join() / push() / pop() (4) | 2022.08.11 |
JavaScript 요소 선택 (5) | 2022.08.05 |