프로그램/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 객체 속성
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