이 섹션에서는 js에서 정규식을 사용하는 방법에 대해 설명합니다. 정규식은 참조 유형입니다.
객체 정의와 마찬가지로 리터럴을 사용하여 정규 표현식을 정의할 수도 있고, 일반 객체를 사용하여 정규 표현식을 정의할 수도 있습니다. 이스케이프가 사용되었습니다.
리터럴을 사용할 때 / /를 사용하여 일치 패턴을 작성할 수도 있고 그렇지 않을 수도 있습니다. 그렇지 않은 경우 기본값은 전역 일치를 사용하는 것이 더 간단하기 때문에 일반적으로 리터럴을 사용합니다. 탈출은 문자열만큼 복잡하지 않습니다.
// 正则表达式 /at/g 表示匹配所有at /g表示全局搜索 var pattern1 = /at/g; // 注意不用字符串 var pattern2 = RegExp('/at', 'g');
다음을 이스케이프해야 합니다.
일반 객체의 속성은 리터럴 변수에서 볼 수 있으므로 이러한 메서드는 별로 유용하지 않습니다. 알아두세요.
exec 메소드의 실행 결과는 모두 일치하는 항목이 아니며, 첫 번째로 일치하는 항목이 반환값으로 표시됩니다. (캡처 그룹의 개념에 대해서는 나중에 다시 사용하겠습니다.) , 여기서 우리는 한 번에 하나의 일치만 일치하고 배열의 0번째 위치에서 반환된다는 것을 알고 있습니다.)
// exec的返回值 var text = 'mom and dad and baby'; var pattern = /mom( and dad( and baby)?)?/gi; var matches = pattern.exec(text); alert(matches.index); // 0 // 拥有index属性标识匹配项再字符串中的位置 alert(matches.input); // mom and dad and baby // 标识原字符串 alert(matches[0]); //mom and dad // 标识匹配的字符串 alert(matches[1]); //and dad //捕获组匹配的字符串 alert(matches[2]); //and baby
exec 메소드는 전역 플래그 /g가 실행 결과에 미치는 영향에 주의해야 합니다. /g를 쓰지 않으면 전역 일치가 아닙니다. 각 실행은 처음부터 시작되며, 다음 일치는 이전 일치를 기반으로 계속됩니다. 아래 예는
// 不写/g 每一次都是从头开始匹配 var text = 'cat, bat, sat, fat'; var pattern1 = /.at/; var matches = pattern1.exec(text); alert(matches.index); //0 alert(matches[0]); //cat alert(pattern1.lastIndex); //0 //lastIndex方法是问题的关键,注意它是pattern1对象的属性,其实就记录了这个正则匹配到哪个位置了,这里都是0说明是一直从零开始匹配 matches = pattern1.exec(text); alert(matches.index); //0 alert(matches[0]); //cat alert(pattern1.lastIndex); //0
plus /g 결과의 변화를 살펴보겠습니다
var text = 'cat, bat, sat, fat'; var pattern1 = /.at/g; var matches = pattern1.exec(text); alert(matches.index); //0 alert(matches[0]); //cat alert(pattern1.lastIndex); //3 //lastIndex标识经过了这次匹配,下次匹配应该从什么位置开始进行 matches = pattern1.exec(text); alert(matches.index); //5 // 标识匹配到的位置 alert(matches[0]); //bat alert(pattern1.lastIndex); //8
테스트 방법은 일치 여부만 알고 싶은 경우 true false를 반환하는 데 사용됩니다. 구체적인 결과를 알고 싶지 않다면 이것을 사용하십시오. 사용자 입력이 유효한지 여부 등을 결정하기 위해 if 문에서 자주 사용됩니다.
var text = '000-00-0000'; var pattern = /\d{3}-\d{2}-\d{4}/; if (pattern.test(text)) { alert('matched'); //matched }
RegExp의 속성을 통해 방금 입력된 문자열이 무엇인지, 지난 번에 일치된 정보가 무엇인지 등 전역 정규 정보를 얻을 수 있습니다. 이는 전역 정적 변수와 비슷합니다. 전역 속성을 살펴보세요. 획득을 위해 어떤 정보가 지원되는지
긴 속성 이름과 짧은 속성 이름을 모두 사용하여 전역 속성을 얻을 수 있습니다. 긴 속성과 짧은 속성의 사용법을 살펴보겠습니다
권장 관련 튜토리얼:JavaScript 비디오 튜토리얼
위 내용은 자바스크립트에서 정규식을 어떻게 사용하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!