정규 test () 첫 번 째 는 true, 두 번 째 는 false
같은 정규 표현 식 은 여러 번 되 돌아 오 는 값 을 사 용 했 습 니 다. 한 번 은 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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.