>  기사  >  웹 프론트엔드  >  js 정규식_javascript 기술의 테스트, 실행 및 일치 메소드 간의 차이점에 대한 설명

js 정규식_javascript 기술의 테스트, 실행 및 일치 메소드 간의 차이점에 대한 설명

WBOY
WBOY원래의
2016-05-16 17:01:401112검색

js 정규식의 test, exec, match 메소드 차이점 설명

test
test는 해당 문자열에 패턴이 존재하는지 확인하기 위해 Boolean을 반환합니다.
var str = "1a1b1c";
var reg = new RegExp("1.", "");
alert(reg.test(str)) // true


exec
exec는 현재 일치하는 결과를 찾아서 배열로 반환합니다.
var str = "1a1b1c";
var reg = new RegExp("1.", "");
var arr = reg.exec(str);
패턴이 존재하지 않는 경우 이면 arr은 null이고, 그렇지 않으면 arr은 항상 값이 현재 일치하는 길이 1의 배열입니다. arr에는 세 가지 속성도 있습니다. index는 현재 일치 항목의 위치이고, lastIndex는 현재 일치 항목의 끝 위치입니다(index는 현재 일치 항목의 길이입니다). input 위의 예에서 입력은 str입니다.


exec 메소드는 매개변수 g의 영향을 받습니다. g를 지정하면 다음에 exec가 호출될 때 마지막으로 일치하는 lastIndex부터 검색이 시작됩니다.
var str = "1a1b1c";
var reg = new RegExp("1.", "");
alert(reg.exec(str)[0]);
alert(reg .exec(str)[0]);
위의 두 출력은 모두 1a입니다. 이제 지정된 매개변수 g를 살펴보세요.
var str = "1a1b1c";
var reg = new RegExp("1.", "g");
alert(reg.exec(str)[0 ]);
alert(reg.exec(str)[0]);
위의 첫 번째는 1a를 출력하고, 두 번째는 1b를 출력합니다.


match
match는 String 객체의 메서드입니다.
var str = "1a1b1c";
var reg = new RegExp("1.", "");
alert(str.match(reg));
match 이 방법은 약간 exec 와 비슷하지만 exec는 RegExp 개체의 메서드이고 math는 String 개체의 메서드입니다. 둘 사이의 또 다른 차이점은 매개변수 g의 해석입니다.
매개변수 g를 지정하면 match는 모든 결과를 한 번에 반환합니다.
var str = "1a1b1c";
var reg = new RegExp("1.", "g");
alert(str.match(reg));
//alert(str .match(reg)); // 이 문장의 결과는 이전 문장과 동일합니다.
이 결과는 1a, 1b, 1c의 세 가지 요소로 구성된 배열입니다.

JavaScript에서는 정규식을 자주 사용하는데, 정규식에서는 Match와 Test 두 함수를 자주 사용하는데, 물론 Exec 코드를 통해 차이점을 구별해 보겠습니다.

일치 예시

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

var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var regexp = /[A-E]/gi;
var rs = str.match(regexp);
//rs= Array('A', 'B ', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e');

테스트 예
코드 복사 코드는 다음과 같습니다.

var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var regexp = /[A-E]/gi;
var rs = regexp.test(str);
// rs = boolean

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

var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" ;
var regexp = /[ A-E]/gi;
var rs;
while ((rs = regexp.exec(str)) != null)
{
document.write( rs);
document.write (regexp.lastIndex);
document.write("
");
}

출력
----------------------
A 1
B 2
C 3
D 4
E 5
a 27
b 28
c 29
d 30
e 31


다른 Exc 예시
코드 복사 코드는 다음과 같습니다.

var regexp = / ab*/g;
var str = "abbcdefabh";
var rs;
while ((rs = regexp.exec(str)) != null)
{
document.write(rs);
document.write(regexp.lastIndex);
document.write("
");
}

출력
----------------------
abb 3
ab 9

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.