var r = new RegExp( 정규식 );
if ( r.메소드( 검색어 ) ) {
alert("정규식 조건과 맞는 경우");
} else {
alert("정규식 조건과 틀린 경우");
}
- 주민등록번호 체크
var r = new RegExp(/\d{6}(\-|)[1-4]\d{6}$/);
if ( r.test("주민등록번호") ) {
alert("올바른 주민등록번호");
} else {
alert("올바르지 않은 주민등록번호");
}
---------------------------------------------------
.exec
.test
.matcch
.search
.replace
.split
예)
[12] : 1 또는 2
[0-9] : 0~9 중 하나
{3} : 3번 반복
[12][0-9]{2} : 100 ~ 299 까지
-------------------------------------------------------------------------------------------
Syntax
string.search(regexp) : indexOf 처럼 regexp 정규식 조건에 해당하는 문자열을 찾을 경우 해당 index(위치 ex 0번째, 3번째 자리) 를 return |
Parameter | Description |
---|---|
regexp | Required. A regular expression. Read more about the RegExp object |
if( frm.name.value.search( /(\S+)\@(\S+)\.(\S+)/ ) == -1 ) {
// /(\S+)\@(\S+)\.(\S+)/ 조건의 단어가 포함되지 않은 경우
}
RegExp.$1 : (\S+)
RegExp.$2 : (\S+)
RegExp.$3 : (\S+)
-------------------------------------------------------------------------------------------
식
/+s/g : 정규표현식은 /로 감싸면 그안의 식은 정규표현식이라는 뜻이다
\s : 공백문자(스페이스,탭등)
\* : *
\D : 숫자가 아닌 문자
^ : ~를 제외한,문자의 시작부분 ex)/^The/i
$ : 문자열 끝부분 ex)/end$/
\w 알파벳,숫자,밑줄기호(_)
[^0-9] 숫자를 제외한
[0-9] 숫자만
[A-Za-z] 알파벳 대소문자
| or
s{2} s의 두번 반복
속성
g 전역 매칭
m 여러 줄 매칭
i 대소문자 구분 않음
문자 매칭
* 0회 이상 반복
+ 1회 이상 반복
? 0 or 1개의 문자 매칭
. 1개의 문자 매칭
ex)
var regExp = /\s\*/g;
var str = "This *is *a *test *string";
var resultString = str.replace(regExp,'-');
document.writeln(resultString);
result
This-is-a-test-string
스페이스*를 -로 대체
ex)
var reqExp = /:\D*\s\d+\s\d+/;
var str = "This is a date: March 12 2005";
var resultString = str.match(reqExp);
document.writeln("Date" + resultStirng);
result
Date: March 12 2005
ex)
var rgExp = /(\w*)-*(\w*)/;
var str = "Java--Script";
var resultStrng = str.replace( rgExp,"$2-$1" );
document.writeln( resultStrng );
[출처] [Javascript] 정규 표현식, 정규식, 주민번호, 숫자 샘플|작성자 정서