>  기사  >  웹 프론트엔드  >  JavaScript 학습 노트 (14) 정규 표현식_기본 지식

JavaScript 학습 노트 (14) 정규 표현식_기본 지식

WBOY
WBOY원래의
2016-05-16 18:36:031096검색

RegExp 클래스
RegExp 개체의 생성자는 하나 또는 두 개의 매개 변수를 사용할 수 있습니다.
첫 번째 매개 변수는 일치해야 하는 패턴을 설명하는 패턴 문자열입니다. 두 번째 매개 변수가 있는 경우 이 매개 변수는 다음과 같습니다. 추가 처리 지침이 지정되었습니다.
1. 기본
1.1 RegExp 객체
test() 메서드
를 사용하여 일치하는지 테스트합니다. 주어진 문자열(단 하나의 매개변수)이 이 패턴과 일치하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

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

var sToMatch = "cat";
var reCat = /cat/; //정규 표현식 리터럴은 Perl 스타일 구문을 사용합니다.
alert(reCat.test(sToMatch) ); //out "true"

exec() 메소드
에는 문자열 매개변수가 있으며 배열을 반환합니다. 배열의 첫 번째 항목은 첫 번째 일치 항목이고 나머지 항목은 역참조입니다. (즉, 배열에 하나만 있고, 가장 먼저 일치하는 것입니다.)
코드 복사 코드는 다음과 같습니다. 다음은 다음과 같습니다.

var strAAA = "a bat, a Cat, a fAt baT, a fat 고양이";
var regAt = new RegExp("at", "gi"); >var arr = regAt.exec( strAAA); //arr[0]은 "at", arr.index 값은 3, arr.lastIndex 값은 5
match() 메서드

는 모든 일치 항목의 배열에 포함된 문자열을 반환합니다.
var strAAA = "박쥐, 고양이, 뚱뚱한 박쥐, 뚱뚱한 고양이";
var regAt = new RegExp("at", "gi")
var arrMatch = strAAA.match( regAt); //참고: String.match(매개변수는 일치 문자)는 위의

search() 메서드 는 indexOf()와 다소 유사하며 문자열에 나타나는 값이 일치하는 위치입니다. 해당 매개변수는 단순한 하위 문자열이 아닌 RegExp 개체입니다.

코드 복사 코드는 다음과 같습니다.
var strAAA = "박쥐, 고양이 , a fat baT, a fat cat";
var regAt = new RegExp("at", "gi");
var index = strAAA.search(regAt); //출력 "3" position은 3

1.2 확장 문자열 메소드
replace() 메소드
는 첫 번째 매개변수를 두 번째 매개변수로 대체할 수 있으며, 여기서 첫 번째 매개변수도 정규식 모드일 수 있습니다.
var strBBB = "하늘은 빨간색입니다.";
//위 문장의 모든 s를 바꾸고 정규식을 사용하여 일치하는 모든 항목을 찾습니다.
var strNewBBB = strBBB.replace(/ s/gi, " ##"); //모든 "s"(대소문자 관계 없음)를 ##
으로 바꾸고 업그레이드합니다. 두 번째 매개변수는 함수

var sToChange = "하늘이 빨갛습니다."
var reRed = /red/; >var sResultText = sToChange.replace(reRed, function(sMatch) {
return "blue";
})
alert(sResultText)


이 예에서는 함수에서 sMatch의 값은 항상 "red"입니다(이것이 유일한 일치 패턴이기 때문입니다). "red"의 첫 번째 발생은 함수의 반환 값 "blue"로 대체됩니다.
Append:
"이것이 유일한 일치 패턴이기 때문입니다"라는 책의 문장이 의미하는 바는 다음과 같습니다. 매개변수는 유일하게 일치하는 패턴입니다. . .

split() 메소드


코드 복사 코드는 다음과 같습니다.var sColor = "red,blue,yellow,green";
var reComma = /,/;
var arrColors = sColor.split(reComma) //각 쉼표로 분할
(arrColors.length); //"4" 출력


정규식 reComma의 쉼표 앞에는 백슬래시가 있어야 합니다. 쉼표는 문법에서 특별한 의미를 가지며 이스케이프되어야 하기 때문입니다.
2. 단순 모드
2.1 메타 문자
정규 표현식에 사용되는 모든 메타 문자는 다음과 같습니다.
( [ { ^ $ | )
총 12개입니다. 이러한 메타 문자를 사용할 때마다 이스케이프해야 합니다. 즉, 앞에 백슬래시를 붙여야 합니다.
예:
var reQMark = /?/; //Escape
var reQMark=new RegExp("\?") //여기서 주의해야 할 점은 백슬래시 자체가 다음과 같기 때문입니다. 또한
도 이스케이프해야 하므로 앞으로는 첫 번째 경우인 리터럴 구문을 사용하도록 노력해야 합니다! Perl 스타일
2.2 특수 문자 사용
또한 다음 표에 나열된 것처럼 사전 정의된 특수 문자도 있습니다.
문자 설명
------ ---------------------
t 탭 문자
n 줄 바꿈 문자
r 캐리지 리턴 문자
f 페이지 피드 문자
a 경고 문자
e 이스케이프 문자
cX X에 해당하는 제어 문자
b 대체 문자
v 세로 탭 문자

주요 수량자는 전체 문자열만 일치시키려고 시도합니다. 전체 문자열이 일치하는 항목을 생성하지 않으면 더 이상 시도가 이루어지지 않습니다. 사실 지배적인 수량자는 간단히 말해서 모든 것에 적합한 하나의 크기입니다.
---------------------------------- --- -------------
탐욕과 게으름의 지배에 대한 설명
--------- --------- --------------- ---------
? ? 0개 또는 1개 발생
* *? * 0개 이상 발생
{n} {n} n} 정확히 n번 발생
{n,m} {n,m}? {n,m}은 최소 n번, 최대 m번 나타남
{n,} {n,}? n번 이상 등장
- ---------------------------- --------- -----
위의 세 가지 수량자를 더 잘 이해하려면 아래 예를 살펴보세요.
var str = "abbbaabbbaaabbb1234 ";
var reg1 = /.* bbb/g;
var reg2 = /.*?bbb/g;
//var reg3 = /.* bbb/g; //Visual에 오류가 보고되었습니다. Studio2008....
var arrMatches1 = str.match(reg1);
var arrMatches2 = str.match(reg2);
//var arrMatches3 = str.match(reg3); ("Greedy:" arrMatches1.join( ",") "nLazy:" arrMatches2.join(","))
가장 큰 차이점은 매칭 프로세스입니다!
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.