-
정규식JavaScript/JavaScript 2018. 2. 4. 16:35
1. 만들기
1)
1var re=/패턴/플래그;cs 2)
1var re=new RegExp("패턴","플래그");cs 3)차이 - new로 만들때에는 이스케이프문자는 \는 \\로 해주어야 한다.
12var re=/\w/;var re=new RegExp("\\w");cs 2. 플래그(flag)
g (Global 찾기) - 패턴에 맞는 모든문자 찾기
i (Ignore Case) - 대소문자 무시
m (Multiline) - 여러줄
3.
^ - 문자열의 시작을 의미 ,m 플래그를 사용할경우 경우는 각 문자열의 시작
$ - 문자열의 끝을 의미 ,m 플래그를 사용할경우 경우는 각 문자열의 끝
. - 모든 한문자
4.
[문자들] - 괄호안의 문자 하나와 매치
예) [abc] - 는 a나 b나 c중 하나를 의미
[^문자들] - 괄호안의 문자가 아닌문자와 매치
예) [^abc] - 는 1,2.... d,e.... 등과 매치
[문자1-문자2] - 문자1과 문자2와 그 사이의 값과 매치
예) [a-d] - a,b,c,d와 매치
5. (abc) - abc와 매치
6. | - 좌우 패턴중 하나를 의미
예) (abc|def) - abc나 def를 의미
7.
* - 앞의 패턴이 0회 또는 그 이상반복됨
+ - 앞의 패턴이 1회 또는 그 이상반복됨
? - 앞의 패턴이 0또는 1회 반복
8. {n}, {n,}, {n,m} - 패턴의 반복회수
예)
(abc){1,3} - abc가 1에서 3회 반복
(abc){1} - abc가 1회반복
(abc){,10} - abc가 10회 이하 반복
9. 특수문자 (Escapes Character)
\ - 일반문자에 \을 붙여서 특수한 용도로 사용한다.
\f - 폼피드(?)
\r - 캐리지리턴
\n - 새줄
\t - 일반 탭문자
\v - 세로 탭문자(?)
\0 - NULL 널문자
[\b] - 백스페이스
\s - 공백문자 ( \f, \n, \r, \t, \v, \u00A0, \u2028, \u2029 )
\S - 공백이아닌문자
\w - 알파벳문자,숫자,_ [a-zA-Z0-9_]
\W - 알파벳문자,숫자,_가 아닌문자 [^a-zA-Z0-9_]).
\d - 정수(short for [0-9]).
\D - 정수가 아닌 문자 (short for [^0-9]).
\b - 단어의 경계 공백,새줄.
\B - 경계가 아닌문자.
\cX - 컨트롤+문자 E.g: \cm matches control-M.
\xhh - 핵사코드
\uhhhh - 유니코드
복잡한 사용방법이 있고 여러 특수문자와의 조합으로 배우기가 쉽지 않아 간단한 예제를 통해 설명한다.
1. 각 문자와 숫자는 해당 문자 또는 문자열이 테스트할 문자열에 있을경우 true 가된다.
123456789101112<script>// 'a' 가 있는 문자열 모두가 TRUE (대소문자 구분)var filter = /a/if (filter.test("some test words") == true){alert("ok");}else{alert("fail");}</script>cs 123456789101112<script>// "about" 가 있는 문자열 모두가 TRUE (대소문자 구분)var filter = /about/if (filter.test("some test words") == true){alert("ok");}else{alert("fail");}</script>cs 2. 대소문자 구분없이 해당 문자 또는 문자열을 검색할 경우 끝에 i 를 붙인다.
123456789101112<script>// 'a' 또는 'A' 가 있는 문자열 모두가 TRUE (대소문자 구분 안함)var filter = /a/iif (filter.test("some test words") == true){alert("ok");}else{alert("fail");}</script>cs 3. 여러개의 이어지는 내용들을 검색할 경우는 '-' 를 넣어 표현한다.
123456789101112<script>// 'a' 에서 'z' 까지중 하나만 있으면 모두가 TRUE (대소문자 구분)var filter = /[a-z]/if (filter.test("some test words") == true){alert("ok");}else{alert("fail");}</script>cs 4. 여러가지의 문자 또는 문자열을 검색할 경우 '|' 를 넣는다.
123456789101112<script>// 'a' 또는 'b' 또는 'c' 가 있는 문자열 모두가 TRUE (대소문자 구분)var filter = /a|b|c/if (filter.test("some test words") == true){alert("ok");}else{alert("fail");}</script>cs 123456789101112<script>// 'a' 에서 'z' 까지 또는 '0' 에서 '9' 까지중 하나만 있으면 모두가 TRUE (대소문자 구분)var filter = /[a-z]|[0-9]/if (filter.test("some test words") == true){alert("ok");}else{alert("fail");}</script>cs 5. 해당 문자또는 문자열이 없는 경우를 검색할 경우 브래킷('[', ']') 안에 '^' 를 넣는다.
123456789101112<script>// 'a' 에서 'z' 까지의 문자가 아닌 문자가 있을 경우 TRUE (대소문자 구분)var filter = /[^a-z]/if (filter.test("some test words") == true){alert("ok");}else{alert("fail");}</script>cs 6. 문자열의 첫번째 글자가 일치해야할 경우는 '^' 를 브래킷('[', ']') 밖에 넣는다.
123456789101112<script>// 'a' 에서 'z' 까지의 문자로 시작하는 문자열일 겨우 TRUE (대소문자 구분)var filter = /^[a-z]/if (filter.test("some test words") == true){alert("ok");}else{alert("fail");}</script>cs 7. 문자열의 끝쪽 글자가 해당 문자 또는 문자열과 일치해야할 경우는 '$' 를 넣는다.
123456789101112<script>// 'a' 에서 'z' 까지의 문자로 끝나는 문자열일 겨우 TRUE (대소문자 구분)var filter = /[a-z]$/if (filter.test("some test words") == true){alert("ok");}else{alert("fail");}</script>cs 8. 특수문자('\', '^', '$', '*', '+', '?', '.', '(', ')', '|', '{', '}', '[', ']')를 검색할 경우는 '\' 를 넣는다.
123456789101112<script>// '\' 가 있는 문자열일 겨우 TRUE (대소문자 구분)var filter = /\\/if (filter.test("some test words") == true){alert("ok");}else{alert("fail");}</script>cs 출처: http://iamnotokay.tistory.com/26
'JavaScript > JavaScript' 카테고리의 다른 글
Array.prototype.map() (0) 2019.09.10 변수명으로 사용할 수 없는 예약어 (0) 2019.01.01 XMLHttpRequest 객체 (0) 2018.12.14 추상적 같음 비교(==), 엄격한 같음 비교(===) (0) 2018.02.04 parseInt()함수와 Number()함수의 차이 (0) 2018.02.04