분류 | 패턴 | 매칭하는 문자열 |
기본 | xyz | 'xyz'라는 문자열 |
[xyz] | x, y, z 중 1개의 문자 | |
[^xyz] | x, y, z 이외의 1개의 문자 | |
[a-z] | a~z 사이의 1개의 문자 | |
x|y|z | x, y, z 중 하나 | |
양 지정 | x* | 0문자 이상의 x("to*"는 "t", "to", "too" 등에 일치) |
x? | 0또는 1문자의 x("to?"는 "t", "to"에 일치) | |
x+ | 1문자 이상의 x("to+"는 "to", "too" 등에 일치) | |
x{n} | x와 n회 일치("[0-9]{4}"는 4자리 숫자) | |
x{n,} | x와 n회 이상 일치("[0-9]{4,}"는 4자리 이상의 숫자) | |
x{m,n} | x와 m~n회의 일치("[0-9]{2,4}"는 2~4자리 숫자) | |
위치 지정 | ^ | 앞부분이 일치 |
$ | 끝부분이 일치 | |
문자 세트 | . | 임의의 1문자에 일치 |
\w | 대문자/소문자의 영문자, 숫자, 언더스코어(_)에 일치 ("[A-Za-z0-9_]"와 동일) |
|
\W | 문자 이외에 일치("[^\w]"와 동일) | |
\d | 숫자에 일치("[0-9]"와 동일) | |
\D | 숫자 이외에 일치("[^0-9]"와 동일 | |
\n | 개행(라인 피드)에 일치 | |
\r | 복귀(캐리지 리턴)에 일치 | |
\f | 폼피드에 일치 | |
\t | 탭 문자에 일치 | |
\v | 수직 탭에 일치 | |
\s | 공백 문자에 일치("[\n\r\t\v\f]"와 동일) | |
\S | 공배 이외의 문자에 일치("[^\s]"와 동일) | |
\~ | '~'에서 나타내는 문자 |
JavaScript에서 이들의 정규 표현식 패턴을 해석하고 검색 등 기능을 제공하는 것은 RegExp 객체의 역할이다.
- RegExp 생성자
- var 변수 = new RegExp(정규표현, 옵션)
- 정규 표현 리터럴
- var 변수 = /정규 표현/옵션
- 정규 표현식 옵션
- g
- 문자열 전체에 매치하는가
- i
- 대문자/소문자의 구분을 무시하는가
- m
- 개행 코드를 행 첫머리/행의 끝으로 인식하는가(여러행일 경우)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>정규 표현</title> </head> <body> <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> <script> // test 메소드 var ex = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/gi; var str1 = '샘플 파일은 http://www.Infopub.co.kr/에서 다운로드 할 수 있음'; var str2 = '질문은 "게시판"으로 부탁드림'; console.log(ex.test(str1)); // 결과 : true console.log(ex.test(str2)); // 결과 : false // search 메소드 console.log(str1.search(ex)); // 결과 : 7 console.log(str2.search(ex)); // 결과 : -1 // match var str = str1; str += '질문은 HTTP://www.infopub.co.kr/로 부탁함'; var result = str.match(ex); for(var i=0, len = result.length; i<len; i++) { console.log(result[i]); } // 결과 // http://www.Infopub.co.kr/ // HTTP://www.infopub.co.kr/ // 정규 표현으로 문자열 치환 var ex1 = /(http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?)/gi; console.log(str1.replace(ex1, '<a href="$1">$1</a>')); // 결과 : 샘플 파일은 <a href="http://www.Infopub.co.kr/">http://www.Infopub.co.kr/</a>에서 다운로드 할 수 있음 // 정규 표현으로 문자열 문할 var ex2 = /[\s\n\t]/gi; console.log('JavaScript Project'.split(ex2)); // 결과 : (2) ["JavaScript", "Project"] console.log('JS\n커뮤니티'.split(ex2)); // 결과 : (2) ["JS", "커뮤니티"] console.log('JS Power프로젝트'.split(ex2)); // 결과 : (7) ["JS", "", "", "", "", "", "Power프로젝트"] </script> </body> </html> |
댓글 없음:
댓글 쓰기