본문 바로가기
프로그램/Javascript

RegExp 객체

by 로드러너 2014. 3. 16.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Regular expressions은 pattern-matching과 text에서 “search-and-replace” functions을 수행하기 위해 사용되어 진다.


Syntax

      var txt = new RegExp(pattern, modifiers);

      var txt = /pattern/modifiers;

 

      – pattern은 expression의 pattern을 명시한다.

      – modifiers는 search가 global, case-sensitive, 기타가 되어야 하는지를 명시한다.

 

Modifiers

      Modifiers는 case-insensitive 와 global searches를 수행하기 위해 사용되어 진다.

 

Modifier

Description

i

case-insensitive matching 수행한다

g

global match 수행한다 ( 번째 match이후 중단하지 않고 모든 match 찾는다.)

m

multiline matching 수행한다


Brackets

      Brackets은 characters의 범위를 찾기 위해 사용되어 진다.

 

Expression

Description

[abc]

brackets사이의 모든 character 찾는다

[^abc]

brackets사이가 아닌 모든 character 찾는다

[0-9]

0 ~ 9사이의 모든 digit 찾는다

[A-Z]

대문자A ~ 대문자 Z사이의 모든 character 찾는다.

[a-z]

소문자a ~ 소문자 z사이의 모든 character 찾는다.

[A-z]

대문자A ~ 소문자 z사이의 모든 character 찾는다.

[adgk]

주어진 set안의 모든 character 찾는다.

[^adgk]

주어진 set밖의 모든 character 찾는다.

(red|blue|green)

명시된 모든 alternative 찾는다.


Metacharacters

      Metacharacters는 명시된 의미를 사용하는 characters이다.

 

Metacharacter

Description

.

newline 또는 line terminator 제외한, single character 찾는다.

\w

word character 찾는다.

\W

non-word character 찾는다.

\d

digit 찾는다.

\D

non-digit character 찾는다.

\s

whitespace character 찾는다.

\S

non-whitespace character 찾는다.

\b

Word beginning/end match 찾는다.

\B

Word beginning/end 아닌 match 찾는다.

\0

NUL character 찾는다.

\n

new line character 찾는다.

\f

form feed character 찾는다.

\r

carriage return character 찾는다.

\t

tab character 찾는다.

\v

vertical tab character 찾는다.

\xxx

octal number xxx 의해 명시된 character 찾는다.

\xdd

hexadecimal number dd 의해 명시된 character 찾는다.

\uxxxx

hexadecimal number xxxx 의해 명시된 Unicode character 찾는다.

 

Quantifiers

 

Quantifier

Description

n+

적어도 하나의 n 포함하는 모든 string match한다.  

n*

N 없거나 이상의 발생을 포함하는 모든 string match한다.  

n?

N 없거나 하나가 발생하는 모든 string match한다.

n{X}

N X 연속을 포함하는 모든 string match한다.

n{X,Y}

N X또는 Y 연속을 포함하는 모든 string match한다.

n{X,}

N 적어도 X 연속을 포함하는 모든 string match한다.

n$

그것의 마지막에 n 있는 모든 string match한다.

^n

그것의 시작에 n 있는 모든 string match한다.

?=n

특정 string n다음에 오는 모든 string match한다.

?!n

특정 string n다음에 오지 않는 모든 string match한다.

 

RegExp 객체 속성

 

Property

Description

global

“g” modifier 설정 되었다면, 명시한다

ignoreCase

“i” modifier 설정 되었다면, 명시한다

lastIndex

다음 match 시작하기 위한 index.

multiline

“m” modifier가 설정 되었다면, 명시한다

source

RegExp pattern의 text.


RegExp 객체 메소드

 

Method

Description

compile()

regular expression compile한다.

exec()

string에서 match를 검사하고 첫 번째 match를 반환한다.

test()

string에서 match를 검사하고 true 또는 false를 반환한다.

Example 1

      var str = “Visit MyHome”;

      var patt = /myhome/i;

      document.write(str.match(patt));    ==> MyHome

      document.write(patt.test(str));    ==> true

Example 2 – 이메일 유효성 체크

      var patt = /[0-9a-zA-Z[_0-9a-zA-Z]*@[_0-9a-zA-Z]+(\.[_0-9a-zA-Z]+){1,2}$/;

      patt.test(str)   ==> true 또는 false

      str.match(patt) ==> 일치하면 입력된 이메일, 불일치하면 null

Example 3 – ID 검사 ( 첫글자가 영문으로 시작해서 영문과 숫자 조합만 가능하면 4 ~ 12 자 사이의 ID)

      var patt = new RegExp(“^[a-zA-Z][a-zA-Z0-9]{3,11}$”, “g”);

      patt.exec(str);    ==> 일치하면 입력된 ID, 불일치하면 null