>웹 프론트엔드 >JS 튜토리얼 >javascript_javascript 스킬의 정규 매칭 방법을 배워보세요.

javascript_javascript 스킬의 정규 매칭 방법을 배워보세요.

WBOY
WBOY원래의
2016-05-16 15:13:451169검색

JavaScript에서 정규 매칭을 수행하는 방법에는 match, exec, test 세 가지가 있습니다. 이러한 메서드는 모두 문자열 및 RegExp 개체와 관련되어 있지만 사용 시나리오는 다르며 혼동하기 쉽습니다. match는 RegExp 객체를 매개변수로 받는 문자열 메소드이고, 나머지는 문자열 매개변수를 받는 RegExp 객체의 메소드이다.

var str = 'abcdef12ab34cd56ef';
var patt = new RegExp('ab'); //主意是非全局匹配

var ret_test = patt.test(str);
console.log(ret_test);
var ret_match = str.match(patt);
console.log(ret_match);
var ret_exec = patt.exec(str);
console.log(ret_exec);

1.regExp.test(문자열)

이 방법은 가장 간단한 방법입니다. regExp와 일치하는 문자열이 문자열에 있으면 true를 반환합니다. 일치하는 문자열이 없으면 false를 반환합니다.

2.regExp.exec(문자열)

이 방법은 약간 더 복잡합니다.

regExp에 전역 플래그가 없으면 반환 값은 문자열 배열입니다. 배열의 0번째 요소는 방금 일치하는 문자열입니다. regExp에 하위 표현식이 있는 경우 배열의 첫 번째 요소는 regExp Sub의 첫 번째 요소입니다. -expression, 두 번째 요소는 regExp의 두 번째 하위 표현식입니다... 등등. 위의 예에서 patt = new RegExp('f(\d)(\d)','g')이면 ret_exec는 문자열 배열이 됩니다: ['f12','1' , '2'].

regExp에 전역 플래그(g 옵션)가 있는 경우 반환 값은 일치하는 첫 번째 문자열로 구성된 배열입니다. regExp에 하위 표현식이 있는 경우 요소 No. 배열의 1번은 regExp의 첫 번째 하위 표현식이고, 요소 번호 2는 regExp의 두 번째 하위 표현식입니다... 등등. 동시에 regExp 객체의 속성(lastIndex)이 변경되고 lastIndex는 문자열의 마지막 문자 위치와 그 뒤의 위치로 설정됩니다(위 예에서는 lastIndex = 2). 다시 regExp.exec(string)을 호출하면 regExp.lastIndex부터 검색 범위를 검색하게 된다. 이때 반환 값은 여전히 ​​단일 요소 문자열 배열인 lastIndex = 10입니다. 문자열의 일치 항목을 반복하기 위해 while 루프를 사용하는 경우가 많습니다.

var patt = new RegExp('ab', 'g'),
  str = 'abcdef12ab34cd56ef', ret;
while((ret = patt.exec(str))!=null) {
  console.log(ret);
}
//输出
['ab']
['ab']

exec 메소드가 반환하는 것은 표준 배열이 아니지만 클래스 배열로 간주해야 합니다. 두 가지 속성도 갖기 때문입니다. input은 입력 문자열이고 index는 현재 일치하는 문자열의 첫 번째 문자 위치입니다. 입력에서.

3. string.match(regExp)

이 방법은 regExp의 lastIndex 속성을 고려할 필요가 없기 때문에 exec보다 간단합니다. 마찬가지로 두 가지 상황(전역 일치 및 비전역 일치)을 구별해야 합니다.

regExp에 전역 플래그가 없으면 반환 값은 exec를 호출하여 배열을 반환하는 것과 동일합니다. 배열의 0번째 요소는 방금 일치하는 문자열입니다. regExp에 하위 표현식이 있는 경우 배열의 첫 번째 요소는 regExp입니다. 의 첫 번째 하위 표현식, 두 번째 요소는 regExp의 두 번째 하위 표현식... 등입니다. 아이디어는 배열에도 두 가지 속성이 있다는 것입니다. input은 입력 문자열 string이고 index는 input에서 현재 일치하는 문자열의 첫 번째 문자 위치입니다.

regExp에 전역 플래그(g 옵션)가 있는 경우 이는 매우 간단하고 우리의 이해와 일치합니다. 일치하는 모든 문자열로 구성된 배열을 반환합니다. 이는 입력 속성과 인덱스 속성이 없는 표준 배열입니다. 일치하는 문자열을 제외하고 반환 값 배열에는 다른 정보가 없습니다.

위 분석에서 단순히 문자열이 특정 정규식과 일치하는지 확인하고 싶다면 테스트 방법을 사용하세요. 일치하는 모든 문자열을 한 번에 검색하거나 일치하는 첫 번째 문자열만 찾으려면 match 메서드를 사용하세요. 여러 번 일치시키고 싶고 원본 문자열에서 일치하는 각 문자열의 위치를 ​​알아야 하거나 주의해야 할 정규식에 하위 표현식 정보가 있는 경우 exec 메소드를 사용하십시오.

위 내용은 JavaScript의 다양한 정규 매칭 방법에 대한 소개입니다. 모든 분들의 학습에 도움이 되기를 바랍니다.

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