JavaScript 정규 표현 식(메모)
6787 단어 정규 표현 식
//정규 표현 식(regular expression)은 문자 모드 를 설명 하 는 대상 입 니 다.
//JS 정의 RegExp 클래스 는 정규 표현 식 을 표시 합 니 다.
//String 과 RegExp 는 정규 표현 식 을 사용 하여 강력 한 패턴 일치 와 텍스트 검색 과 교체 하 는 함 수 를 정의 합 니 다.
정규 표현 식 만 들 기
1.정규 표현 식 만 들 기
//JS 는 두 가지 방법 으로 정규 생 성 을 제공 합 니 다.하 나 는 new 연산 자 를 사용 하고 다른 하 나 는 글자 의 양 을 사용 하 는 방식 이다.
(1).var box = new RegExp('box'); // 첫 번 째 매개 변 수 는 문자열 입 니 다.
var box = new RegExp('box','ig'); // 두 번 째 매개 변 수 는 선택 가능 한 패턴 수정자 입 니 다.
(2).var box = /box/; // 두 개의 역 슬 래 쉬 를 직접 사용 하기;
var box = /box/ig; // 패턴 수정자 추가 하기;
2.RegExp 대상 테스트 정규 표현 식
//RegExp 대상 은 두 가지 방법 을 포함 합 니 다:test()와 exec();기능 이 기본적으로 비슷 하여 문자열 의 일치 성 을 테스트 하 는 데 사용 합 니 다.
(1).test():문자열 에서 지정 한 정규 표현 식 이 존재 하 는 지 찾 고 불 값 을 되 돌려 줍 니 다.
//test()인 스 턴 스
var pattern = new RegExp('box','i'); // 정규 만 들 기;
var str = 'This is a Box!'; // 문자열 만 들 기;
alert(pattern.test(str)); // test()방법 으로 일치 하 는 지 검증 하기;
// 한 문장 을 사용 하여 정규 일치 실현 하기;
alert(/box/i.test('This is a box!'));
(2).exec():문자열 에서 지정 한 정규 표현 식 을 찾 습 니 다.성공 하면 이 문자열 을 포함 하 는 관련 정보 배열 을 되 돌려 줍 니 다.실패 하면 null 로 돌아 가기;
exec()인 스 턴 스
var pattern = /box/i;
var str = 'This is a Box!';
alert(pattern.exec(str)); // 일치 하 는 배열 되 돌려 주기;
3.String 대상 테스트 정규 표현 식
(1).match(pattern):pattern 의 하위 문자열 이나 null 을 되 돌려 줍 니 다.
//math()방법 으로 일치 하 는 배열 가 져 오기;
var pattern = /box/ig;//전역 오픈
var str = 'This is a Box!,That is a Box too!';
alert(str.match(pattern)); // 배열 가 져 오기:[Box,Box]
(2).search(pattern):문자열 의 pattern 시작 위 치 를 되 돌려 줍 니 다.
var pattern = /box/ig;
var str = 'This is a Box!,That is a Box too!';
console.log(str.search(pattern)); // 10;search()를 찾 으 면 되 돌아 갑 니 다.그렇지 않 으 면 되 돌아 갑 니 다-1;
(3).replace(pattern,replacement):replacement 으로 pattern 을 교체 합 니 다.
var pattern = /box/ig;
var str = 'This is a Box!,That is a Box too';
console.log(str.replace(pattern,'Tom')); // Box 를 Tom 으로 교체 하기;
(4).split(pattern):지정 한 pattern 에 따라 분 리 된 문자열 을 되 돌려 줍 니 다.
var pattern = / /ig;
var str = 'This is a Box!, That is a Box too.';
console.log(str.split(pattern)); // 빈 칸 을 나 누 어 배열 하기;
3 획득 제어
//정규 표현 식 메타 문 자 는 특수 한 의 미 를 가 진 문자 입 니 다.
//일치 하 는 패턴 을 제어 할 수 있 는 특수 한 기능 이 있 습 니 다.
//역 슬 래 쉬 후의 메타 문 자 는 그 특별한 의 미 를 잃 게 됩 니 다.
1.메타 문자/메타 기호 일치 상황
//문자 클래스:단일 문자 와 숫자
. 줄 바 꿈 자 를 제외 한 임의의 문자 일치 하기;
[a-z0-9] 괄호 안에 있 는 문자 와 일치 하 는 임의의 문자 집중 하기;
[^a-z0-9] 괄호 안에 없 는 문자 집중 문자 일치 하기;
\d 일치 하 는 숫자;
\D 비 숫자 일치 하기;
\w 알파벳 과 숫자 및 일치
\W 비 자모 와 숫자 및 일치
//문자 클래스:공백 문자
\0 일치 하 는 null 문자;
\b 공백 문자 일치 하기;
\f 용지 입력 문자 일치 하기;
줄 바 꿈 문자 일치 하기;
\r 리 턴 문자 일치 하기;
\t 배합 표 부적;
\s 공백 문자/공백/탭 문자 와 줄 바 꿈 문자 일치;
\S 공백 문자 가 아 닌 문자 일치 하기;
//문자 클래스:닻 문자;
^ 행수 일치;
$ 줄 끝 일치;
//문자 클래스:중복 문자;
x? 0 개 또는 1 개 x 일치 하기;
x* 0 개 이상 x 일치
x+ 최소한 x 와 일치 하기;
(xyz)+ 하나 이상 일치(xyz);
x{m,n} 최소 m 개,최대 n 개 x 일치;
//문자 클래스:대체 문자;
this|where|logo this 또는 where 또는 로고 중 임의의 것 과 일치 합 니 다.
//문자 클래스:기록 문자;
$1 첫 번 째 그룹의 내용 일치 하기;
실례:
pattern = /g..gle/; // ".":임의의 문자 일치 하기;
pattern = /g.*gle/; // ".*":0 개 이상 의 문자 일치 하기;
pattern = /g[a-z]*gle/; // [a-z]*:임의의 a-z 의 문자 와 일치 합 니 다.
pattern = /g[^0-9]*gle/; // [^0-9]*:0-9 가 아 닌 임의의 문자 와 일치 합 니 다.
pattern = /[a-z][A-Z]+/; // [A-Z]+:A-Z 의 문자 와 한 번 또는 여러 번 일치 합 니 다.
pattern = /g\w*gle/; // \w*:여러 개의 모든 문자 숫자 와 일치 합 니 다.
pattern = /google\d*/; // \d*:여러 개의 숫자 와 일치 합 니 다.
pattern = /\D{7,}/; // \D{7,}:최소 7 개의 비 숫자 와 일치 합 니 다.
pattern = /^google$/; // "^":처음부터 일치 합 니 다."$":끝 에서 일치 하기;
var pattern = /8(.*)8/;
var str = 'This is 8google8';
str.match(pattern);
console.log(RegExp.$1); // 첫 번 째 그룹 에 있 는 문자열 내용 가 져 오기;
2.탐욕 과 타성
+ +?
? ??
* *?
{n} {n}?
{n,} {n,}?
{n,m} {n,m}?
var pattern = /[a-z]+?/; //"?":탐욕 매 칭 을 닫 고 첫 번 째 만 바 꿉 니 다.
var str = 'abcdefg';
alert(str.replace(pattern,'xxx')); // =>xxxdefg;
//exec 를 사용 하여 배열 을 되 돌려 줍 니 다.
var pattern = /^[a-z]+\s[0-9]{4}$/i;
var str = 'google 2015';
alert(pattern.exec(str)[0]); // 전체 문자열 을 되 돌려 줍 니 다=>google 2015;
var pattern = /^[a-z]+/i;
var str = 'google 2015';
alert(pattern.exec(str)); //일치 하 는 알파벳 을 되 돌려 줍 니 다=>google;
//특수 문자 매 칭 사용 하기;
var pattern = /\.\[\/b\]/;
var str = '.[/b]';
alert(pattern.test(str));
//줄 바 꾸 기 모드 사용
var pattern = /^\d+/mg;
var str = '1.baidu2.google3.bing';
var result = str.replace(pattern,"#");
alert(result); // #.baidu #.google #.bing;
정규
1.우편 번호 확인
//총 6 자리 숫자,첫 번 째 는 0 이 될 수 없습니다.
var pattern = /[1-9][0-9]{5}/;
var str = '224000';
alert(pattern.test(str));
2.압축 파일 검사
//숫자+자모+ +.+zip|rar|gz
var pattern = /[\w]+\.zip|rar|gz/;
var str = '123.zip';
alert(pattern.test(str));
3.남 은 스페이스 바 삭제
var pattern = /\s/g; // 전역 적 으로 일치 해 야 합 니 다.
var str = '111 222 333';
var result = str.replace(pattern,"");
4.맨 끝 스페이스 바 삭제
var pattern = /^\s+/; // 강제 우두머리;
var str = ' goo gle ';
var result = str.replace(pattern,""); // 줄 첫 칸 삭제 하기;
pattern = /\s+$/; // 강제 꼬리;
result = result.replace(pattern,""); // 줄 끝 공백 삭제 하기;
5.간단 한 이메일 인증
var pattern = /^([a-zA-Z0-9_\.\-]+)@([a-zA-Z0-0_\.\-]+)\.([a-zA-Z]{2,4})$/;
var str = '[email protected]';
alert(pattern.test(str));
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
awk 상용 명령awk 는 모든 입력 줄 을 하나의 기록 으로 인식 하고 그 줄 의 모든 단어 도 메 인 을 하나의 필드 로 인식 합 니 다. ARGC 명령 줄 에 awk 스 크 립 트 가 들 어 오 는 매개...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.