1. 생성자 방법
var reg = new RegExp ( 'd' , 'gi' ) ;
2. 문자 그대로의 방법
var reg = / d / gi ;
수식어에는 세 가지 유형이 있습니다. i, g, m
순서 없이 동시에 나타날 수 있습니다(즉, gi
ig
와 동일합니다). 아래 지침을 참조하세요.
수정자 | 설명하다 |
---|---|
나 | 대소문자 일치 무시 |
g | 글로벌 매칭(Global Matching), 즉 하나의 매칭을 매칭한 후 끝까지 매칭을 계속하는 것 |
중 | 다중 라인 매칭, 즉 줄 바꿈을 만난 후에도 끝까지 매칭이 멈추지 않습니다. |
상징 | 효과 |
---|---|
의미 변경으로, 즉 "" 뒤의 문자는 일반적으로 원래 의미에 따라 해석되지 않습니다. 예를 들어 /b/는 b 앞에 백슬래시가 추가된 경우 /b와 일치합니다. /, 변경의 의미는 단어 경계를 일치시키는 것입니다. 또는 " "와 같은 정규식 함수 문자를 복원하면 그 앞에 있는 메타 문자가 0회 이상 일치합니다. /a /는 a, aa, aaa와 일치합니다. ""를 추가한 후에 /a*/는 "a *"와만 일치합니다. | |
^ | 입력 또는 줄의 시작과 일치합니다. /^a/는 "an A"와 일치하지만 "An a"와 일치하지 않습니다. |
$ | 입력 또는 줄 끝과 일치합니다. /a$/는 "An a"와 일치하지만 "an A"와 일치하지 않습니다. |
. | 줄 바꿈 및 종결자를 제외한 모든 단일 문자와 일치합니다. |
* | 이전 메타 문자와 0회 이상 일치합니다. /ba*/는 b,ba,baa,baaa와 일치합니다. |
+ | 이전 메타 문자와 1회 이상 일치합니다. /ba+/는 ba, baa, baaa와 일치합니다. |
? | 이전 메타 문자와 0 또는 1번 일치합니다. /ba?/는 b,ba와 일치합니다. |
(엑스) | x를 일치시키고 $1...$9라는 변수에 x를 저장합니다. |
엑스 | 와이 |
{N} | 정확히 n번 일치 |
{N,} | n번 이상 일치 |
{n,m} | nm번 일치 |
[xyz] | 문자 세트(문자 세트)는 이 세트의 모든 문자(또는 메타문자)와 일치합니다. |
[^xyz] | 이 세트의 어떤 문자와도 일치하지 않습니다 |
[아즈] | 임의의 문자 []는 임의의 문자를 나타낼 수 있습니다. |
[^az] | ^ 문자가 아닌 경우 []는 제외를 나타냅니다. |
[비] | 백스페이스 문자와 일치합니다. |
비 | 단어 경계 일치 |
비 | 경계가 없는 단어와 일치 |
cX | 여기서 X는 제어 문자이고 /cM/은 Ctrl-M과 일치합니다. |
디 | 영숫자 문자와 일치합니다. /d/ = /[0-9]/ |
디 | 영숫자가 아닌 문자와 일치합니다. /D/ = /[^0-9]/ |
N | 개행 문자와 일치합니다. |
아르 자형 | 캐리지 리턴과 일치합니다. |
에프 | 일치 양식 피드 |
에스 | n, r, f, t, v 등을 포함한 공백 문자와 일치합니다. |
에스 | /[^nfrtv]/와 같은 공백이 아닌 문자와 일치합니다. |
티 | 탭 문자와 일치 |
다섯 | 이중 탭 문자와 일치합니다. |
w | "$5.98"의 5와 일치하는 [w]와 같은 밑줄을 포함하여 단어(영숫자, 숫자를 포함한 내 무료 번역)를 구성할 수 있는 문자와 일치합니다. 이는 [a-zA-Z0-9와 동일합니다. ] |
W | "$5.98"의 $와 일치하는 [W]와 같이 단어를 구성할 수 없는 문자와 일치합니다. 이는 [^a-zA-Z0-9]와 같습니다. |
NUL 문자와 일치 |
너비가 0인 어설션은 일부 콘텐츠(이러한 콘텐츠는 포함하지 않음) 앞이나 뒤의 항목을 찾는 데 사용됩니다. 즉, b,^,$
와 같이 특정 조건(예: 어설션)을 충족해야 하는 위치를 지정하는 데 사용됩니다. 너비가 0인 어설션이라고도 합니다.
선행 주장 | 너비가 0인 긍정적 예측 어설션 (?=表达式) 이는 표현식 앞의 위치가 일치함을 의미합니다. | 예를 들어, [az]*(?=ing) 요리 노래에서 cook과 sing을 일치시킬 수 있습니다. |
참고: 예측 어설션의 실행 단계는 다음과 같습니다. 먼저 일치할 문자열의 가장 오른쪽 끝에서 첫 번째 ing(즉, 예측 어설션의 표현식)을 찾은 다음 일치하지 않는 경우 이전 표현식을 찾습니다. 일치, 계속 두 번째 ing을 찾은 다음 두 번째 ing 이전의 문자열을 일치시킵니다. 일치하면 일치합니다.
사후 주장 | 일치하는 표현식 뒤의 위치를 나타내는 너비가 0인 사후 조회 어설션 (?<=表达式) 이라고도 합니다. | 예를 들어 (?<=abc).* abcdefg의 defg와 일치할 수 있습니다. |
참고: 후기 어설션은 예견 어설션과 정반대입니다. 실행 단계는 다음과 같습니다. 먼저 문자열의 가장 왼쪽 끝에서 첫 번째 abc(즉, 예견 어설션의 표현식)를 찾습니다. 일치한 후 다음 표현식을 일치시킵니다. 일치할 수 없는 경우 계속해서 두 번째 abc를 검색한 다음 두 번째 abc 이후의 문자열을 일치시킵니다. 예를 들어 (?<=abc).*
abcdefg 대신 abcdefgabc의 defgabc와 일치할 수 있습니다.
음의 너비가 0인 어설션 | (?!表达式) 도 너비가 0인 위치와 일치하지만 이 위치의 "어설션"은 표현식의 반대 값을 사용합니다. 예를 들어 (?!表达式) 은 표현식이 유지되지 않는 경우 위치를 나타냅니다. , 이 위치와 일치합니다. ; 표현식이 true이면 일치하지 않습니다. 마찬가지로 음의 너비가 없는 어설션에는 "첫 번째"와 "마지막" (?<!表达式) 두 가지 유형이 있습니다. (?<!表达式) |
(?<!表达式)
(?!表达式)
괄호를 사용하여 일치하는 문자열을 묶은 다음 대체 값에 $1 표현식을 사용하여 현재 일치하는 값을 가져옵니다. 예를 들어 괄호가 여러 개인 경우 $1, $2, $3을 사용하여 가져올 수 있습니다. 모든 교체가 끝나면 이것이 우리가 원하는 데이터입니다.
예를 들어, 다음은 HTML 구조의 모든 class
속성과 일치할 수 있는 검색 상자의 정규식입니다.
className = "([^0-9]+)"
그럼 우리는 교체할 수 있습니다
className = { { $1 } }
그러면 그럴 것이다
className = "xxx" //转化为
className = { { xxx } }
1. RegExp 객체 관련 메소드
메소드 이름 | 사용 시나리오 | 반환 값 | 예 |
---|---|---|---|
시험 | 일치하는지 판단 | 참 또는 거짓 | /d/.test('eno yao 2019') |
시험 | match와 유사한 일치하는 결과를 반환합니다. | 배열 또는 null | /d/.exec('eno yao 2019') |
2. 문자열 객체 관련 메소드
메소드 이름 | 사용 시나리오 | 반환 값 | 예 |
---|---|---|---|
성냥 | 일치하는 결과를 반환합니다. 비전역 조건에서는 exec가 반환한 결과와 일치하며 일치하는 문자열을 가리키는 정보가 있습니다. 전역 조건에서는 일치하는 모든 결과가 한 번에 반환됩니다. | 배열 또는 null | '에노 야오 2019'.match(/d/) |
바꾸다 | 문자열을 다른 문자열로 바꾸거나 일반 일치 문자열을 다른 하위 문자열로 바꿉니다. | 배열 또는 null | '에노 야오 2019'.replace(/d/, '2019') |
찾다 | 일치하는 첫 번째 하위 문자열의 위치를 찾아 인덱스 값을 반환하고, 그렇지 않으면 -1을 반환합니다. | 색인 | '에노야오 2019'.search(/d/, '2019') |
나뉘다 | 합의된 문자열 또는 문자열에 따라 배열을 분할하고 문자열 또는 일반 문자열을 허용합니다. | 색인 | '에노 야오 2019'.search(/d/, '2019') |