>  기사  >  웹 프론트엔드  >  자바스크립트에서 정규식을 어떻게 사용하나요?

자바스크립트에서 정규식을 어떻게 사용하나요?

青灯夜游
青灯夜游앞으로
2020-07-06 10:09:032543검색

자바스크립트에서 정규식을 어떻게 사용하나요?

이 섹션에서는 js에서 정규식을 사용하는 방법에 대해 설명합니다. 정규식은 참조 유형입니다.

초기화: 리터럴과 객체의 사용

객체 정의와 마찬가지로 리터럴을 사용하여 정규 표현식을 정의할 수도 있고, 일반 객체를 사용하여 정규 표현식을 정의할 수도 있습니다. 이스케이프가 사용되었습니다.

리터럴을 사용할 때 / /를 사용하여 일치 패턴을 작성할 수도 있고 그렇지 않을 수도 있습니다. 그렇지 않은 경우 기본값은 전역 일치를 사용하는 것이 더 간단하기 때문에 일반적으로 리터럴을 사용합니다. 탈출은 문자열만큼 복잡하지 않습니다.

// 正则表达式 /at/g 表示匹配所有at  /g表示全局搜索
var pattern1 = /at/g; // 注意不用字符串
var pattern2 = RegExp('/at', 'g');

다음을 이스케이프해야 합니다.
자바스크립트에서 정규식을 어떻게 사용하나요?

일반 객체의 속성

일반 객체의 속성은 리터럴 변수에서 볼 수 있으므로 이러한 메서드는 별로 유용하지 않습니다. 알아두세요.
자바스크립트에서 정규식을 어떻게 사용하나요?

exec( ) 메소드(캡처 메소드)

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제