1. 정규 표현을 정의하는 방법
정규 표현식을 정의하는 두 가지 방법이 있습니다 : 생성자 정의 및 정규식 직접 수량 정의. 예를 들어:
다음과 같이 코드를 복사하십시오. var reg1 = new regexp ( '/d {5, 11}');
var reg2 = // d {5, 12}/;
정규 표현식은 문자를 직접 측정합니다
/O : NUL 문자 (/u0000)
/t : 탭 문자 (/u0009)
/n : Newline 문자 (/u000a)
/V : 수직 탭 문자 (/u000b)
/f : 페이지 변경 (/u000c)
/R : 캐리지 리턴 문자 (/u000D)
/xnn : 16 진수 nn에 의해 지정된 라틴 문자, 예를 들어, /x0a는 /n과 같습니다.
/uxxxx : 16 진수 xxxx에 의해 지정된 유니 코드 문자, 예를 들어 /u0009는 /t와 동일합니다.
/cx : 제어 문자 ^x, 예를 들어, /cj는 줄 break /n과 동일합니다.
정규 표현식 앵커 문자
^: 문자열의 시작 부분을 멀티 라인 검색에서 선의 시작과 일치시킵니다.
$ : 문자열 끝과 일치, 멀티 라인 검색에서 라인의 끝과 일치합니다.
/b : 단어의 경계를 일치시켜 문자 /w와 /w 사이에 또는 문자열과 문자열 사이에 있습니다 ([ /b]는 백 스페이스 기호와 일치합니다.
/b : 비 단어 경계의 위치와 일치합니다
(? = p) : P와 일치하려면 0 폭 전방 어설 션이 필요하지만 P와 일치하는 문자는 포함하지 않아야합니다.
(?! p) : Zero-Width Negative Direction은 먼저 다음 문자열이 P와 일치하지 않도록 요구합니다.
정규 표현을위한 캐릭터 클래스
[...] : 사각형 괄호의 모든 캐릭터
[^...] : 사각형 괄호가없는 모든 캐릭터
. : 라인 브레이크 및 기타 유니 코드 라인 터미네이터를 제외한 모든 문자
/W : [A-ZA-Z0-9]와 동등한 ASCII 문자로 구성된 모든 단어.
/w : ASCII 문자로 구성되지 않은 단어는 [^a-za-Z0-9와 동일합니다.]
/S : 유니 코드 흰색 스페이스
/s : 비 unicode whitespace 문자, /w 및 /s는 다릅니다.
/d : [0-9]에 해당하는 모든 ASCII 번호
/d : ASCII 번호를 제외한 모든 문자, [^0-9]
[/b] : 백 스페이스 직접 수량 (특별한 경우)
정규 표현식에 대한 문자 구문을 반복하십시오
{n, m} : 이전 항목과 적어도 n 번 일치하지만 m 시간 이하는 아닙니다.
{n,} : 이전 항목 n 번 이상 일치합니다.
{n} : 이전 항목 n 번 일치합니다
? : 이전 항목 0 또는 1 번 일치합니다. 즉, 이전 항목은 선택 사항이며 {0, 1}과 같습니다.
+: {1,}에 해당하는 이전 항목과 1 회 이상 일치합니다.
*: {0,}에 해당하는 이전 항목 0 이상 일치합니다.
정규 표현식의 선택, 그룹화 및 참조 문자
| : 선택, 왼쪽의 하위 표현 또는 오른쪽의 서브 표현을 일치시킵니다.
(…) : "*", "+", "|"와 같은 기호로 수정할 수있는 여러 항목을 단위로 결합 하여이 그룹과 일치하는 문자를 기억할 수 있습니다 사용
(? : ...) : 항목 만 결합하고 항목을 장치에 결합하지만 셔플과 일치하는 캐릭터를 기억하지 못합니다.
/n : Nth 그룹이 처음 일치하는 캐릭터는 괄호로 묶을 수 있습니다. 양식 그룹화는 인코딩되지 않습니다
정규 표현 수정 자
I : 사례에 민감한 일치를 수행하십시오
G : 첫 번째 경기를 찾은 후 중지하는 대신 글로벌 경기를 수행합니다.
M : 멀티 라인 매칭 패턴, ^는 선의 시작과 문자열의 시작과 일치하며 $는 선의 끝과 문자열의 끝과 일치합니다.
패턴 매칭을위한 문자열 메소드
Search () : 인수는 정규 표현식이며, 첫 번째 하위 문자열의 시작 위치를 반환하여 일치하는 부분 문자열이 없으면 -1을 반환합니다. search ()의 매개 변수가 정규식이 아닌 경우, 먼저 Regexp 생성자를 통해 정규식으로 변환됩니다. Search ()는 수정자를 무시하기 때문에 글로벌 검색을 지원하지 않습니다. 좋다:
코드 사본은 다음과 같습니다.
var s = "JavaScript".Search (/script/i);
대체 () : 검색 및 교체를 수행하는 데 사용됩니다. 두 개의 매개 변수를받습니다. 첫 번째는 정규 표현식이고 두 번째는 교체 할 문자열입니다. 정규 표현이 설정되면, 글로벌 치환이 수행되며, 그렇지 않으면 일치하는 첫 번째 하위 문자 만 교체됩니다. 첫 번째 인수가 정규 표현이 아닌 경우 문자열을 정규 표현으로 변환하는 대신 문자열을 직접 검색하십시오. 좋다:
다음과 같이 코드를 복사하십시오. var s = "JavaScript".replace (/java/gi, "script");
매치 () : 인수는 정기적 인 표현식입니다. 수정 자 G가 설정되면 글로벌 매칭이 수행됩니다. 좋다:
다음과 같이 코드를 복사하십시오. var d = '55 ff 33 HH 77 tt'.match (// d+/g); // d = [ "55", "33", "77"]
Split () :이 메소드는 문자열을 하위 문자열로 구성된 배열로 분할하는 데 사용됩니다. 좋다:
다음과 같이 코드를 복사하십시오. var d = '123,31,453,645'.split ( ',') [ "123", "31", "453", "645";
var d = '21, 123, 44, 64, 67, 3'.split (// s*,/s*/); // d = [ "21", "123", "44", "64" , "67", "3"]
2. regexp 객체
각 regexp 객체에는 5 개의 속성이 있습니다. 속성 소스는 정규 표현식의 텍스트를 포함하는 읽기 전용 문자열입니다. 속성 글로벌은 정규 표현식에 수정자를 가지고 있는지 여부를 나타내는 읽기 전용 부울 값입니다. 속성 무시 카 케이스는 정규 표현식에 수정 자 I를 갖는지 여부를 나타내는 읽기 전용 부울 값입니다. 속성 멀티 린은 정규 표현식에 수정 자 m을 갖는지 여부를 나타내는 읽기 전용 부울 값입니다. 속성 LastIndex는 일치하는 패턴에 G 수정자가있는 경우,이 속성은 전체 문자열에서 다음 검색의 시작 위치를 저장합니다.
regexp 객체에는 두 가지 방법이 있습니다. exec () 매개 변수는 문자열이며 함수는 match ()와 유사합니다. 일치하지 않으면 NULL이 발견되면이 배열의 첫 번째 요소는 정규 표현식과 일치합니다 정규 표현식에 수정 자 G가 있는지 여부는 동일한 배열을 반환합니다. 일반 표현식 객체 호출 exec ()에 수정 자 G가있는 경우, 현재 정규 표현식 객체의 LastIndex 속성을 일치하는 하위 문자 옆의 문자 위치로 설정합니다. 동일한 정규 표현식이 exec ()를 두 번째로 호출하면 LastIndex 속성으로 표시된 문자열에서 검색되기 시작하고 Exec ()가 일치하는 결과를 찾지 않으면 LastIndex를 0으로 재설정합니다. 좋다:
코드 사본은 다음과 같습니다. var p = /java /g;
var text = "JavaScript는 Java보다 더 재미 있습니다!"
var r;
while ((r = p.exec (text))! = null) {
console.log (r, 'lastindex :' + p.lastindex);
}
다른 방법은 test ()가 문자열을 사용하여 특정 문자열이 포함 된 경우 true false를 반환합니다. 좋다:
코드 사본은 다음과 같습니다. var p = /java /i;
p.test ( 'JavaScript');