과거에는 JS가 사용 된 경우에도 거의 온라인 코드가 많았습니다.
최근에 나는 사용해야하는 정기적 인 표현을 만났고 그건 그렇고
정규 표현 객체의 두 가지 정의 방법이 있습니다.
1. 첫 번째 정의 :
새로운 regexp (패턴, 속성);
그중에는 위의 내용이 ABC를 보여주는 것처럼 표현의 발현 내용입니다.
속성 : G, Global Matching, 나는 소규모와 소문자를 구별하지 않으며, M은 멀티 라인 매칭, G 및 I의 가장 많이 사용됩니다.
2. 두 번째 정의 :/패턴/속성.
예를 들어 : var reg = /abc /g;
정규 표현식으로 표현 된 일부 규칙은 더 이상 여기에 설명되지 않으며 Exec와 일치의 차이 만 설명합니다.
1. exec는 문자열 메소드가 아니라 정규 표현식의 방법입니다.
위의 정의로
var reg = 새로운 regexp ( "ABC");
var str = "3ABC4, 5ABC6";
reg.exec (str);
2. 일치는 문자열이 정규 표현식 규칙을 수행하는 방법입니다
var reg = 새로운 regexp ( "ABC");
var str = "3ABC4, 5ABC6";
str.match (예 :);
3. exec and match return은 배열입니다.
exec에 의해 실행 된 정규 표현식에 서브 표현이 없으면 (/s*)/(/s*)/(/s*)와 같은 작은 괄호 안의 내용이 없으면 일치하는 경우 첫 번째 일치하는 문자열 내용을 반환합니다. 컨텐츠, 현재에는 널로 반환되지 않은 경우 현재 하나의 요소 만 있습니다.
var reg = 새로운 regexp ( "ABC");
var str = "3ABC4, 5ABC6";
경고 (reg.exec (str));
경고 (str.match (reg));
동일한 코드를 실행하면 둘의 내용이 동일하다는 것을 알게됩니다. ABC.
4. 정규 표현 객체가 글로벌 매칭으로 정의되는 경우 :
var reg = 새로운 regexp ( "ABC", "G");
var str = "3ABC4, 5ABC6";
경고 (reg.exec (str));
경고 (str.match (reg));
ABC의 경우 ABC는 전역 일치 쿼리를 수행하기 때문에 하위 표현이없는 경우에만 일치합니다.
5. 하위 표현이 포함되어 있음을 의미하는 경우 :
var reg = 새로운 regexp ( "a (bc)");
var str = "3ABC4, 5ABC6";
경고 (reg.exec (str));
경고 (str.match (reg));
두 실행 결과는 다음과 같습니다. ABC, BC;
6. 정규 표현 객체가 글로벌 경기로 정의 될 때
var reg = new Regexp ( "A (BC)", "G");
var str = "3ABC4, 5ABC6";
경고 (reg.exec (str));
경고 (str.match (reg));
반환 된 두 사람의 결과는 ABC, BC 및 ABC, ABC입니다.
요약 :
1. 정규 표현식이 하위 발현이없고 비 글로벌 일치로 정의되면, exec and match의 결과는 동일하며 첫 번째 일치하는 문자열 내용이 반환됩니다.
2. 정규 표현식에 하위 발현이없고 글로벌 매칭, 실행 및 일치 실행으로 정의되면 여러 개의 일치하는 내용이 있으면 일치는 여러 원소 배열을 반환합니다.
3. 정규 표현이 표현되고 비수증이없는 일치로 정의 될 때, Exec 및 Match의 실행 결과는 위와 동일합니다.
4. 정규 표현식이 표현되고 글로벌 경기로 정의되면이 시점에서 Exec와 매치의 결과는 다릅니다. , 6, 6, 6, 6, 6, 6 위와 같이;
즉, EXEC가 전반적인 상황에 의해 정의되는지 여부는 관련이 없으며 경기는 전체 상황과 관련이 있습니다.