ysg999님의 블로그 | ysg999 http://blog.naver.com/ysg999/140035578680
제작일 2004년 2월
제작자 유섭교 (ysg999@naver.com)
Javascript RegExp 사용을 위한 설명
1. Special characters in regular expressions(정규표현식의 특수문자)
Character |
의미 |
\ |
역슬러쉬는 특수 문자와 일반 문자를 표현한다 예) /b/는 말 그대로 비교되는 문자열의 b 만을 의미한다. 그러나 역슬러쉬를 쓰게 되면 말은 틀려진다. /\b/는 backspace 를 의미한다. 자바스크립트에서 /\t/, /\n/,/\s/ 텝,엔터,스페이스 등등 여러 가지가 있다. 그래서 특수 문자와 일반문자의 구별에 쓰이게 된다. |
^ |
대상 문자열의 첫번째를 의미한다. 예) /^A/ 는 “an A” 에서는 유효하지 않다. 첫번째에 소문자 a이므로 하지만 “An A” 에서는 유효하다. 첫번째에서 메치가 되므로 |
$ |
대상 문자열의 마지막을 의미한다. 예) /t$/ 는 “eater” 에서는 유효하지 않다. (마지막에서 메치 않됨) “eat” 에서는 유효하다. (마지막에서 메치가 되므로) |
* |
대상 문자열에서 비교될 문자열이 0개거나 그 이상 존재 해야 함 예) /bo*/는 b는 무조건 하나 o는 0개 혹은 그 이상이어도 만족함 /bo*/ 는 “booooo”나 “A ghost booooed” 그리고 'b' 만 있는 것도 유효함. "A bird warbled" 그러나 “A goat grunted”는 유효하지 않음 |
+ |
대상 문자열에서 비교될 문자열이 1개거나 그 이상 존재 해야 함 예) /a+/ 는 다음과 같은 경우 메치 되는 예이다. “catch” 혹은 “caaaaaaandy” |
? |
대상 문자열에서 비교될 문자열이 0개거나 1개 존재 해야 함 예) /e?le?/ 는 “angel”과 메치된다.e?l은 e와 l사이에서 e가 하나 있거나 없어도 되기 때문이다. 그리고 ‘le’같은 경우는 “angle”과 메치가 된다. le? 도 마지막 e가 없거나 1개 있어도 되므로 |
. |
대상 문자열에서 비교될 문자열의 첫번째 문자를 제외한 한 개의 문자로만 메치됨. 예) /.n/ 은 ‘an’이나 ‘on’ 로“nay, an apple is on the tree” 와 비교 되지 만 “nay”와는 메치 되지 않는다.
|
Character |
의미 |
(x) |
해당 x의 값과 같은 패턴으로 되어진 문자열을 찾아 매치 시킨다 그리고 나서 매치시킨 스트링에서 다시 (x)의 패턴이 있는지 찾아서 그걸 또 반환한다. 예) /(foo)/ 는 “foo bar”와 메치가 된다. foo라는 패턴이 문자열에 있 기 때문임 /(a)(b)(c)/ 는 “abcd”와 비교된다면 결과는 abc,a,b,c 의 형식으로 값을 반환하게 된다. |
{n} |
n은 양수이며, 해당 문자열에 반드시 n만큼의 문자열이 들어가야 함 예) /a{2}/ 는 “candy”는 성립이 않되지만,“caandy” 혹은 “caaandy” 에서는 성립된다. 단 뒤의 caaandy에서는 두번째a까 지만 해당됨 |
x | y |
x나 y중 아무거나 비교문자열과메치 된다면 예) /green|red/‘green’은 “green apple”매치되며 “red apple”와도매치 |
{n , } |
n은 양수이며, 해당 문자열에 최소한 n이상의 문자열이 들어가야 함 예) /a{2}/ 는 “candy”는 성립이 않되지만,“caandy” 혹은 “caaandy” 에서는 성립된다.이건 n개 이상 모두.. 포함 |
{n,m} |
n과 m은 양수이며, 해당 문자열에 최소한 n이상 최대 m개 까지 문자열이 들어가야 함 예) /a{1,3}/ 는 “cndy”는 성립이 않되지만,“caandy” 혹은 “caaandy” 에서는 성립된다. 단 뒤의 caaandy에서는 세번째a까 지만 해당됨. 그리고 “aaa”도 해당됨. |
[xyz] |
비교될 문자열이 []안의 문자와 같은 것이 있다면 성립된다. []안에 들어갈 문자열의 순서가 순차적이라면 하이픈으로 대체할 수도 있다. 예) /[abcd]/ == /[a-d]/ 와 같은 결과가 성립된다. “brisket”이 비교될 문자열일 경우 ‘b’가 해당되므로 성립됨 |
[^xyz] |
비교될 문자열이 []안의 문자와 같지 않은 것이 존재 한다면 성립이 된다. 그렇게 된다면 exec()를 사용할 경우 같지 않은 부분을 뺀 첫번째 문자열을 가져오게 되고 test()를 사용할 경우는 []문자열외에 다른 문자가 있다면 true를 반환하겠지만 아무것도 없거나 []문자열만 있다면 false를 반환 예) /[^abcd]/ 는 “lpokabcd”와 비교 할 때 exec()를 사용하면 ‘l’을 반환하고 test()를 사용하면 true를 반환한다. “abcd”라면 exec()는 nulltest()는 false |
[\b] |
Back space와 매치 |
\b |
공백과 매치 예) /\bn\w/ 는 “noonday”에서 “no”와 매치됨 /\wy\b/ 는 “possibly yesterday.”에서 “ly”와 매치됨 |
Character |
의미 |
\cX |
|
\B |
의미 공백이아니면 매치 예) /\w\Bn/ 는 “noonday”에서 “on”과 매치됨 “noo nday”로 변경하면 n앞에 공백이 있어서 매치 조건이 성립되지 않음. 즉, 위 표현식은 (아무문자,공백아님,n)의 순서로 구성되야함 |
\d |
[0-9]까지의 캐릭터 셋이 매치됨 예) /\d/ or /0-9/ 라면 “B2 is the suite number” 라면 ‘2’와 매치됨 |
\D |
[0-9]가 아닌 나머지 캐릭터 셋과 매치됨 예) /\D/ or /^0-9/ 라면 “B2 is the suite number” 라면 ‘B’와 매치됨 |
\f |
Form feed와 매치(용지먹임 문자) |
\n |
Line feed와 매치(줄먹임 문자) |
\r |
Carriage return 과 매치(되돌림 문자) |
\s |
Space character 와 매치 예) [\f\n\r\t\v]는 form-feed, linefeed, carriage return, tab, veritical tab 임 /\s/ 는 [\f\n\r\t\v] 과 같은 의미임 /\s\w*/ 은 “foo bar”에서 “bar”와 매치됨 |
\S |
공백이 아닌 것 다음에 나오는 single character와 매치됨 예) /\S/ 는 [^\f\n\r\t\v] 과 같은 의미임 /\S\w*/ 은 “foo bar”에서 “foo”와 매치됨 |
\t |
Tab 과 매치 |
\v |
Vertical tab과 매치 |
\w |
알파벳대소문자 전체와 숫자 전체 그리고 언더스코어와 매치 예) [A-Za-z0-9_ ] |
\W |
위의 예를 뺀 나머지 문자(특수문자계열) 예) /\W/ or /^$A-Za-z0-9_ ]/일때 ‘%’ 는 “50%”에 매치됨 |
\n |
|
\ooctal \xhex |
2. Method Summary (정규표현식의 메소드)
Method |
설명 |
Compile |
정규표현식 객체를 컴파일 한다. |
exec |
파라미터로 넘어오는 값중 정규 표현식에 매치되는 것을 찾아서 리턴한다. |
test |
파라미터로 넘어오는 값중 정규 표현식에 매치되는 것이 있으면 boolean값을 리턴한다. |
toStource |
Returns an object literal representing the specified object; you can use this value to create a new object. Overrides the Object.toSource method. |
toString |
정규표현식을 통한 객체의 값을 String 형태로 리턴한다. |
valueOf |
정규표현식을 통한 객체의 값을 Primitive 형태로 리턴한다. |
'[ Web ] > JavaScript & JQUERY' 카테고리의 다른 글
웹브라우져_창 흔들기 (0) | 2012.09.12 |
---|---|
마우스오버시 새창 아웃시 사라지는 소스 (0) | 2012.09.12 |
정규표현식 (0) | 2012.09.11 |
텍스트 박스 숫자 입력시 콤마 찍기 (0) | 2012.09.11 |
키보드의 키코드(keycode) 값과 키 입력제어 (0) | 2012.09.11 |
댓글