정규 test () 첫 번 째 는 true, 두 번 째 는 false

2160 단어
문제.
같은 정규 표현 식 은 여러 번 되 돌아 오 는 값 을 사 용 했 습 니 다. 한 번 은 false 이 고 한 번 은 true 입 니 다.
var s1 = "MRLP";
var s2 = "MRLP";
var reg = /mrlp/ig;
console.log(reg.test(s1));// true
console.log(reg.test(s2));// false

lastIndex
설명 을 시작 하기 전에 먼저 JS 의 정규 표현 식 사용 방식 을 간단히 살 펴 보 겠 습 니 다.JS 에서 정규 표현 식 의 사용 방식 은 두 가지 가 있 습 니 다. 첫 번 째 는 정규 표현 식 대상 의 방법 이 고 자주 사용 하 는 방법 은 두 가지 가 있 습 니 다.1. exec (str): 검색 문자열 에서 지정 한 값 입 니 다.찾 은 값 을 되 돌려 주 고 위치 2, test (str): 검색 문자열 에서 지정 한 값 을 확인 합 니 다.true 나 false 로 돌아 갑 니 다.두 번 째 는 문자열 대상 의 방법 입 니 다. 자주 사용 하 는 방법 은 네 가지 가 있 습 니 다.
3. match (regexp): 하나 이상 의 정규 표현 식 의 일치 성 을 찾 습 니 다.
4. replace (regexp): 정규 표현 식 과 일치 하 는 하위 문자열 5, search (regexp): 정규 표현 식 과 일치 하 는 값 6, split (search) 를 검색 합 니 다. 문자열 을 문자열 배열 로 나 눕 니 다.
이런 방법 들 은 우리 가 오늘 말 한 lastIndex 와 무슨 관계 가 있 습 니까?lastIndex 속성 은 다음 에 일치 하 는 시작 위 치 를 규정 하 는 데 사 용 됩 니 다.
마지막 으로 일치 하 는 결 과 는 방법 RegExp. exec () 와 RegExp. test () 에서 찾 았 습 니 다. 모두 lastIndex 속성 이 가리 키 는 위 치 를 다음 검색 의 시작 점 으로 합 니 다.이렇게 하면 이 두 가지 방법 을 반복 적 으로 호출 하여 하나의 문자열 에 있 는 모든 일치 하 는 텍스트 를 옮 겨 다 닐 수 있다.그리고 이 속성 은 로고 g 를 설정 해 야 사용 할 수 있 습 니 다.이 물건 의 형성 원인 을 이미 알 고 있 는 이상 해결 하기 가 매우 간단 하 다.
해결 방안
첫 번 째 해결 방안 은 위 에서 말 한 바 와 같이 lastIndex 속성 은 g 라벨 을 설정 해 야 사용 할 수 있 습 니 다.그러면 우 리 는 일치 할 때 상황 에 따라 g 라벨 을 직접 제거 하면 됩 니 다.
var s1 = "MRLP";
var s2 = "MRLP";
var reg = /mrlp/i;
console.log(reg.test(s1));  //true
console.log(reg.test(s2));  //true

두 번 째 해결 방안 은 많은 경우 에 우 리 는 전체 일치 (g) 를 실행 해 야 한다. 이 럴 때 첫 번 째 방안 을 사용 할 수 없다.사실 lastIndex 속성 은 읽 을 수 있 고 쓸 수 있 습 니 다. 대상 문자열 의 다음 검색 이 시작 되면 설정 할 수 있 습 니 다.방법 exec () 나 test () 가 일치 하 는 텍스트 를 찾 지 못 하면 lastIndex 속성 을 0 으로 자동 으로 초기 화 합 니 다.이렇게 하면 우리 가 전체 국면 을 다시 실행 할 때 false 상황 이 발생 하지 않 을 것 이다.
var s1 = "3206064928:MRLP:3206064928";
var s2 = "MRLP";
var reg = /mrlp/ig;
console.log(reg.test(s1));  //true
console.log(reg.lastIndex);   //reg.lastIndex = 15
reg.lastIndex = 0;          //     lastIndex     0
console.log(reg.test(s2));  //true

원문:https://blog.csdn.net/ken_ding/article/details/79929311

좋은 웹페이지 즐겨찾기