JavaScript 정규 표현 식(메모)

6787 단어 정규 표현 식
정규 표현 식
//정규 표현 식(regular expression)은 문자 모드 를 설명 하 는 대상 입 니 다.
//JS 정의 RegExp 클래스 는 정규 표현 식 을 표시 합 니 다.
//String 과 RegExp 는 정규 표현 식 을 사용 하여 강력 한 패턴 일치 와 텍스트 검색 과 교체 하 는 함 수 를 정의 합 니 다.
정규 표현 식 만 들 기
1.정규 표현 식 만 들 기
//JS 는 두 가지 방법 으로 정규 생 성 을 제공 합 니 다.하 나 는 new 연산 자 를 사용 하고 다른 하 나 는 글자 의 양 을 사용 하 는 방식 이다.
    (1).var box = new RegExp('box');          // 첫 번 째 매개 변 수 는 문자열 입 니 다.
            var box = new RegExp('box','ig'); // 두 번 째 매개 변 수 는 선택 가능 한 패턴 수정자 입 니 다.
    (2).var box = /box/;                      // 두 개의 역 슬 래 쉬 를 직접 사용 하기;
            var box = /box/ig;                // 패턴 수정자 추가 하기;
2.RegExp 대상 테스트 정규 표현 식
//RegExp 대상 은 두 가지 방법 을 포함 합 니 다:test()와 exec();기능 이 기본적으로 비슷 하여 문자열 의 일치 성 을 테스트 하 는 데 사용 합 니 다.
(1).test():문자열 에서 지정 한 정규 표현 식 이 존재 하 는 지 찾 고 불 값 을 되 돌려 줍 니 다.
//test()인 스 턴 스
    var pattern = new RegExp('box','i');     // 정규 만 들 기;
    var str = 'This is a Box!';              // 문자열 만 들 기;
    alert(pattern.test(str));                // test()방법 으로 일치 하 는 지 검증 하기;
    // 한 문장 을 사용 하여 정규 일치 실현 하기;
    alert(/box/i.test('This is a box!'));
(2).exec():문자열 에서 지정 한 정규 표현 식 을 찾 습 니 다.성공 하면 이 문자열 을 포함 하 는 관련 정보 배열 을 되 돌려 줍 니 다.실패 하면 null 로 돌아 가기;
exec()인 스 턴 스
    var pattern = /box/i;
    var str = 'This is a Box!';
    alert(pattern.exec(str));                // 일치 하 는 배열 되 돌려 주기;
3.String 대상 테스트 정규 표현 식
(1).match(pattern):pattern 의 하위 문자열 이나 null 을 되 돌려 줍 니 다.
//math()방법 으로 일치 하 는 배열 가 져 오기;
    var pattern = /box/ig;//전역 오픈
    var str = 'This is a Box!,That is a Box too!';
    alert(str.match(pattern));               // 배열 가 져 오기:[Box,Box]
(2).search(pattern):문자열 의 pattern 시작 위 치 를 되 돌려 줍 니 다.
    var pattern = /box/ig;
    var str = 'This is a Box!,That is a Box too!';
    console.log(str.search(pattern));        // 10;search()를 찾 으 면 되 돌아 갑 니 다.그렇지 않 으 면 되 돌아 갑 니 다-1;
(3).replace(pattern,replacement):replacement 으로 pattern 을 교체 합 니 다.
    var pattern = /box/ig;
    var str = 'This is a Box!,That is a Box too';
    console.log(str.replace(pattern,'Tom')); // Box 를 Tom 으로 교체 하기;
(4).split(pattern):지정 한 pattern 에 따라 분 리 된 문자열 을 되 돌려 줍 니 다.
    var pattern = / /ig;
    var str = 'This is a Box!, That is a Box too.';
    console.log(str.split(pattern));         // 빈 칸 을 나 누 어 배열 하기;
3 획득 제어
//정규 표현 식 메타 문 자 는 특수 한 의 미 를 가 진 문자 입 니 다.
//일치 하 는 패턴 을 제어 할 수 있 는 특수 한 기능 이 있 습 니 다.
//역 슬 래 쉬 후의 메타 문 자 는 그 특별한 의 미 를 잃 게 됩 니 다.
1.메타 문자/메타 기호    일치 상황
//문자 클래스:단일 문자 와 숫자
.                              줄 바 꿈 자 를 제외 한 임의의 문자 일치 하기;
[a-z0-9]               괄호 안에 있 는 문자 와 일치 하 는 임의의 문자 집중 하기;
[^a-z0-9]            괄호 안에 없 는 문자 집중 문자 일치 하기;
\d                             일치 하 는 숫자;
\D                             비 숫자 일치 하기;
\w                             알파벳 과 숫자 및 일치
\W                             비 자모 와 숫자 및 일치
//문자 클래스:공백 문자
\0                             일치 하 는 null 문자;
\b                             공백 문자 일치 하기;
\f                             용지 입력 문자 일치 하기;
                             줄 바 꿈 문자 일치 하기;
\r                             리 턴 문자 일치 하기;
\t                             배합 표 부적;
\s                             공백 문자/공백/탭 문자 와 줄 바 꿈 문자 일치;
\S                             공백 문자 가 아 닌 문자 일치 하기;
//문자 클래스:닻 문자;
^                              행수 일치;
$                              줄 끝 일치;
//문자 클래스:중복 문자;
x?                             0 개 또는 1 개 x 일치 하기;
x*                             0 개 이상 x 일치
x+                             최소한 x 와 일치 하기;
(xyz)+                         하나 이상 일치(xyz);
x{m,n}                         최소 m 개,최대 n 개 x 일치;
//문자 클래스:대체 문자;
this|where|logo                this 또는 where 또는 로고 중 임의의 것 과 일치 합 니 다.
//문자 클래스:기록 문자;
$1                             첫 번 째 그룹의 내용 일치 하기;
실례:
pattern = /g..gle/;         // ".":임의의 문자 일치 하기;
pattern = /g.*gle/;         // ".*":0 개 이상 의 문자 일치 하기;
pattern = /g[a-z]*gle/;     // [a-z]*:임의의 a-z 의 문자 와 일치 합 니 다.
pattern = /g[^0-9]*gle/;    // [^0-9]*:0-9 가 아 닌 임의의 문자 와 일치 합 니 다.
pattern = /[a-z][A-Z]+/;    // [A-Z]+:A-Z 의 문자 와 한 번 또는 여러 번 일치 합 니 다.
pattern = /g\w*gle/;        // \w*:여러 개의 모든 문자 숫자 와 일치 합 니 다.
pattern = /google\d*/;      // \d*:여러 개의 숫자 와 일치 합 니 다.
pattern = /\D{7,}/;         // \D{7,}:최소 7 개의 비 숫자 와 일치 합 니 다.
pattern = /^google$/;       // "^":처음부터 일치 합 니 다."$":끝 에서 일치 하기;
var pattern = /8(.*)8/;
var str = 'This is 8google8';
str.match(pattern);
console.log(RegExp.$1);     // 첫 번 째 그룹 에 있 는 문자열 내용 가 져 오기;
2.탐욕 과 타성
+        +?
?        ??
*        *?
{n}      {n}?
{n,}     {n,}?
{n,m} {n,m}?
var pattern = /[a-z]+?/;        //"?":탐욕 매 칭 을 닫 고 첫 번 째 만 바 꿉 니 다.
var str = 'abcdefg';
alert(str.replace(pattern,'xxx'));    // =>xxxdefg;
//exec 를 사용 하여 배열 을 되 돌려 줍 니 다.
var pattern = /^[a-z]+\s[0-9]{4}$/i;
var str  = 'google 2015';
alert(pattern.exec(str)[0]);    // 전체 문자열 을 되 돌려 줍 니 다=>google 2015;
var pattern = /^[a-z]+/i;
var str = 'google 2015';
alert(pattern.exec(str));       //일치 하 는 알파벳 을 되 돌려 줍 니 다=>google;
//특수 문자 매 칭 사용 하기;
var pattern = /\.\[\/b\]/;
var str = '.[/b]';
alert(pattern.test(str));
//줄 바 꾸 기 모드 사용
var pattern = /^\d+/mg;
var str = '1.baidu2.google3.bing';
var result = str.replace(pattern,"#");
alert(result);                  // #.baidu  #.google  #.bing;
정규
1.우편 번호 확인
//총 6 자리 숫자,첫 번 째 는 0 이 될 수 없습니다.
var pattern = /[1-9][0-9]{5}/;
var str = '224000';
alert(pattern.test(str));
2.압축 파일 검사
//숫자+자모+ +.+zip|rar|gz
var pattern = /[\w]+\.zip|rar|gz/;
var str = '123.zip';
alert(pattern.test(str));
3.남 은 스페이스 바 삭제
var pattern = /\s/g;          // 전역 적 으로 일치 해 야 합 니 다.
var str = '111 222 333';
var result = str.replace(pattern,"");
4.맨 끝 스페이스 바 삭제
var pattern = /^\s+/;                        // 강제 우두머리;
var str = '    goo  gle   ';
var result = str.replace(pattern,"");        // 줄 첫 칸 삭제 하기;
pattern = /\s+$/;                            // 강제 꼬리;
result = result.replace(pattern,"");         // 줄 끝 공백 삭제 하기;
 
5.간단 한 이메일 인증
var pattern = /^([a-zA-Z0-9_\.\-]+)@([a-zA-Z0-0_\.\-]+)\.([a-zA-Z]{2,4})$/;
var str = '[email protected]';
alert(pattern.test(str));

좋은 웹페이지 즐겨찾기