> 웹 프론트엔드 > JS 튜토리얼 > JavaScript_기본 지식의 정규식에 대한 간략한 요약

JavaScript_기본 지식의 정규식에 대한 간략한 요약

WBOY
풀어 주다: 2016-05-16 16:53:09
원래의
1157명이 탐색했습니다.

1. 정규식 정의 방법

정규식을 정의하는 방법에는 생성자 정의와 정규식 리터럴 정의의 두 가지가 있습니다. 예:

코드 복사 코드는 다음과 같습니다.
var reg1 = new RegExp('d{ 5, 11} '); // 생성자를 통해
정의 var reg2 = /d{5, 12}/ // 직접 수량을 통해
정의

정규식 리터럴 문자
o: NUL 문자(u0000)
t: 탭 문자(u0009)
n: 줄바꿈 문자(u000A)
v: 세로 탭 문자(u000B)
f: 폼 피드 문자(u000C)
r: 캐리지 리턴 문자(u000D)
xnn: 16진수 nn으로 지정되는 라틴 문자 예를 들어, x0A는 다음과 같습니다.
uxxxx: 16진수 xxxx로 지정된 유니코드 문자(예: u0009)는
🎜>과 동일합니다. ^: 여러 줄 검색에서 줄의 시작과 일치합니다.
$ : 문자열의 끝과 일치합니다. 여러 줄 검색에서 줄의 끝과 일치합니다.
b: 단어와 일치합니다. 경계는 간단히 말해서 문자 w와 W 사이의 위치 또는 문자 사이의 위치입니다. w 및 문자열의 시작 또는 끝([b]는 백스페이스 문자와 일치)
B: 일치하지 않음 단어 경계의 위치
(?=p): 너비가 0인 긍정적 예측 어설션, 다음을 필요로 함 p와 일치하는 문자는 다음과 같지만 p와 일치하는 문자는 포함하지 않습니다.
(?!p): 너비가 0인 부정 다음 문자열이 p와 일치하지 않도록 요구하는 미리보기를 주장합니다.
정규식 문자 클래스
[...]: 대괄호 안의 모든 문자
[^...]: 대괄호 안의 모든 문자
.: 개행 및 기타 유니코드 줄 종결자를 제외한 모든 문자
w: 모든 [a-zA-Z0-9]
에 해당하는 ASCII 문자로 구성된 단어 W: [^a-zA-Z0-9]
에 해당하는 ASCII 문자로 구성되지 않은 모든 단어 s: Any 유니코드 공백 문자
S: 유니코드가 아닌 공백 문자, w와 S에 주의하세요. 다름
d: [0-9]에 해당하는 모든 ASCII 숫자
D: ASCII 숫자를 제외한 모든 문자, 해당 to [^0-9]
[b]: 백스페이스 직접 수량(특수 사례)
정규 표현식의 반복 문자 구문
{n, m}: 이전 항목을 n번 이상 일치하지만 일치하지 않음 m회 이상
{n, }: 이전 항목을 n회 이상 일치
{n}: 이전 항목을 n회 일치
?: 이전 항목을 0회 또는 1회 일치합니다. 이전 항목은 선택사항이며 {0, 1}과 동일합니다.
: 이전 항목과 1회 이상 일치합니다. {1, }
과 동일합니다. *: 이전 항목과 0회 이상 일치합니다. {0, }
정규식 표현식의 선택, 그룹화 및 참조 문자
|: 선택, 기호 왼쪽의 하위 표현식 또는 오른쪽의 하위 표현식 일치
(...): 조합 , 여러 항목을 하나의 단위로 결합하면 이 단위는 "*", "", "?" 및 "|"와 같은 기호로 수정될 수 있으며, 이 그룹과 일치하는 문자열은 이후 사용 시 기억될 수 있습니다.
(? : ...): 조합만, 항목을 하나의 단위로 결합하지만 셔플링과 일치하는 문자를 기억하지 않습니다.
n: n번째 그룹의 첫 번째 일치 문자와 일치합니다. 그룹은 괄호 안의 하위 표현식입니다. 또한 중첩), 그룹 인덱스는 왼쪽에서 오른쪽으로 왼쪽 대괄호의 수이며 "(?:" 형식으로 그룹화됩니다. 인코딩되지 않습니다
정규식 수정자
i: 대소문자를 구분하지 않는 일치 수행
g: 전역 일치를 수행합니다. 즉, 첫 번째 일치 항목을 찾은 후 중지하는 대신 모든 일치 항목을 찾습니다.
m: 여러 줄 일치 모드, ^는 줄의 시작과 문자열의 시작과 일치, $는 The 줄의 끝과 문자열의 끝
패턴 일치를 위한 문자열 방법
search(): 해당 매개변수는 정규식이며 일치하는 하위 문자열이 없는 경우 첫 번째 일치하는 하위 문자열의 시작 위치를 반환합니다. -1이 반환됩니다. search()의 매개변수가 정규식이 아닌 경우 먼저 RegExp 생성자를 통해 정규식으로 변환됩니다. search()는 수정자 g를 무시하므로 전역 검색을 지원하지 않습니다. 예:


코드 복사 코드는 다음과 같습니다.

var s = "JavaScript".search(/script/i) // s = 4

replacement(): 검색 및 교체를 수행하는 데 사용됩니다. 두 개의 매개변수를 받습니다. 첫 번째는 정규식이고 두 번째는 대체할 문자열입니다. 정규식에 g 수정자가 설정된 경우 전역 대체가 수행되고, 그렇지 않으면 일치하는 첫 번째 하위 문자열만 대체됩니다. 첫 번째 인수가 정규식이 아닌 경우 정규식으로 변환되지 않고 문자열을 직접 검색합니다. 예:

코드 복사 코드는 다음과 같습니다.
var s = "JavaScript".replace( /java/gi , "스크립트"); // s = 스크립트 스크립트

Match(): 해당 매개변수는 정규식입니다. 그렇지 않은 경우 RegExp를 통해 변환되어 일치하는 결과로 구성된 배열을 반환합니다. 수정자 g가 설정되면 전역 일치가 수행됩니다. 예:

코드 복사 코드는 다음과 같습니다.
var d = '55 ff 33 hh 77 tt'.match (/d /g); // d = ["55", "33", "77"]

분할(): 이 메서드는 호출하는 문자열을 하위 문자열 배열로 분할하는 데 사용됩니다. 사용되는 구분 기호는 분할()의 매개 변수이며 해당 매개 변수는 정규 표현식일 수도 있습니다. 예:

코드 복사 코드는 다음과 같습니다.
var d = '123,31,453,645'. 분할(', '); // d = ["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개의 속성이 있습니다. source 속성은 정규식의 텍스트를 포함하는 읽기 전용 문자열입니다. 전역 속성은 이 정규식에 수정자 g가 있는지 여부를 나타내는 읽기 전용 부울 값입니다. ignoreCase 속성은 이 정규식에 수정자 i가 있는지 여부를 나타내는 읽기 전용 부울 값입니다. multiline 속성은 이 정규식에 수정자 m이 있는지 여부를 나타내는 읽기 전용 부울 값입니다. lastIndex 속성은 읽고 쓸 수 있는 정수입니다. 일치하는 패턴에 g 수정자가 있으면 이 속성은 전체 문자열에서 다음 검색의 시작 위치를 저장합니다.
RegExp 개체에는 두 가지 메서드가 있습니다. exec()의 매개변수는 문자열이며 해당 기능은 match()와 유사합니다. exec() 메서드는 지정된 문자열에 대해 정규식을 실행합니다. 즉, 문자열에서 일치하는 검색을 수행합니다. 일치하는 항목이 없으면 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()입니다. 해당 매개변수는 test()를 사용하여 정규식과 일치하는 결과를 포함하는 경우 true를 반환하고 그렇지 않으면 false를 반환합니다. 예:

코드 복사 코드는 다음과 같습니다.
var p = /java/i;
p.test('javascript'); // true
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿