javascript: 정규표현식
2021. 1. 11. 09:56ㆍ프론트엔드/JavaScript
반응형
정규표현식 Regular Expression
Regex, Regexp 등으로 불림.
문자열을 검색하고 대체하는 형식 패턴.
역할
- search
- replace
- extract
생성하기
1. 리터럴 방식
var 패턴이름 = /표현식/플래그/;
2. 객체 생성 방식
var 패턴이름 = new RegExp("표현식","플래그");
Method
주로 exec와 test를 많이 사용.
exec 문자열 찾기, 정보를 가진 배열 반환
test 문자열 검사, true or false 반환
//1. 리터럴 방식
var pattern1=/a/;
//2. 객체 생성 방식
var pattern2=new RegExp("a");
var pattern3=/k/i; //i: 플래그, 대소문자 구분 없음
//3. 문자열 변수
var str1="hi, javascript!!!";
var str2="bcefs";
var str3="King of";
// method : exec
console.log(pattern1.exec(str1));
// 결과 : ["a", index: 5, input: "hi, javascript!!!", groups: undefined]
console.log(pattern2.exec(str2)); // null
// method : test
console.log(pattern1.test(str1)); // true
console.log(pattern1.test(str2)); // false
//pattern3 str3
console.log(pattern3.test(str3));
플래그
i: 대소문자 구별하지 않음
var xi = /a/;
console.log("Abcde".match(xi)); // null
var oi = /a/i;
console.log("Abcde".match(oi)); // ["A"];
정규식 메타문자
간단한 정규 표현식
var re = /a/ --a 가 있는 문자열
var re = /a/i --a 가 있는 문자열, 대소문자 구분 안함
var re = /apple/ -- apple가 있는 문자열
var re = /[a-z]/ -- a~z 사이의 모든 문자
var re = /[a-zA-Z0-9]/ -- a~z, A~Z 0~9 사이의 모든 문자
var re = /[a-z]|[0-9]/ -- a~z 혹은 0~9사이의 문자
var re = /a|b|c/ -- a 혹은 b 혹은 c인 문자
var re = /[^a-z]/ -- a~z까지의 문자가 아닌 문자("^" 부정)
var re = /^[a-z]/ -- 문자의 처음이 a~z로 시작되는 문장
var re = /[a-z]$/ -- 문자가 a~z로 끝남
//영문자
var p1=/[a-z]/;
//영문자x
var p2=/[^a-z]/;
//숫자
var p3=/[0-9]/;
//영문자로 시작
var p4=/^[a-z]/;
//영문자로 끝
var p5=/[a-z]$/;
var str1="javascript !!!";
var str2="REGEXP ES6";
var str3="010-1111-2222";
console.log(p1.test(str1));
console.log(p1.test(str2));
console.log(p1.test(str3));
console.log(p3.test(str3));
console.log(p4.test(str2));
console.log(p5.test(str2));
자주 사용되는 패턴
숫자만 : ^[0-9]*$
영문자만 : ^[a-zA-Z]*$
한글만 : ^[가-힣]*$
영어 & 숫자만 : ^[a-zA-Z0-9]*$
정규식 실습
주민등록번호, 전화번호, 핸드폰번호, 이메일주소
//주민등록번호 체크
var p1 = /\d{6}-[1-4]\d{6}/;
var num1 = prompt("주민등록번호를 입력하세요", "123456-1234567");
console.log(p1.test(num1));
//전화번호 체크하기
//첫글자가 2,3글자/ 중간글자 3,4/ 마지막 4
var tel = /^\d{2,3}-?\d{3,4}-?\d{4}$/;
var tel2 = prompt("집 전화번호를 입력하세요", "02-111-1111");
console.log(tel.test(tel2));
//핸드폰번호 체크하기
var phone = /^01([0|1|6|7|8|9])-?\d{3,4}-?\d{4}$/;
var phone2 = prompt("핸드폰 번호를 입력하세요", "010-1234-1234");
console.log(phone.test(phone2));
//이메일 체크
var email = /^[a-z0-9]([-_.]?[a-z0-9])*@[a-z0-9]([-_.]?[a-z0-9])*.[a-z]{2,3}$/i;
var email2 = prompt("메일주소를 입력하세요", "");
console.log(email.test(email2));
반응형
'프론트엔드 > JavaScript' 카테고리의 다른 글
자바스크립트에서 =, ==, ===의 차이점 (0) | 2021.04.14 |
---|---|
자바스크립트 기본문법 이해하기 1( 객체, 메서드, 매개변수, 프로퍼티, 반환, 변수, 반복, 함수, 배열, while문, for문, for~in문) (0) | 2021.02.15 |
javascript: event (0) | 2021.01.07 |
javascript: dom 객체 (0) | 2021.01.04 |
javascript: 브라우저 객체 (0) | 2020.12.31 |