JavaScript 학습 총화 (8) 정규 표현 식

이 문장 은 원래 매우 일찍 써 야 하 는데, 매우 오래 끌 었 으 니, 지금 정리 해서 모두 가 학습 하고 교류 할 수 있 도록 제공 합 시다!
기본 개념
정규 표현 식 은 일반 문자 (예 를 들 어 a 에서 z 사이 의 자모) 와 특수 문자 ('원 문자' 라 고 함) 를 포함 한 텍스트 모드 입 니 다.패턴 설명 은 텍스트 를 검색 할 때 일치 하 는 문자열 하나 이상 을 설명 합 니 다.
우선 정규 표현 식 편집기 Debuggex 를 추천 합 니 다.https://www.debuggex.com/PyRegex:http://www.pyregex.com/Regexper:http://www.regexper.com/
정규 표현 식 은 검색 및 문자열 교체 작업 입 니 다.정규 표현 식 은 텍스트 편집기 에서 광범 위 하 게 사 용 됩 니 다. 예 를 들 어 정규 표현 식 은 다음 과 같 습 니 다.
               
            
        ,  :      
    

설명: 정규 표현 식 은 보통 두 가지 작업 에 사 용 됩 니 다. 1. ,2. / 。 검증 에 사용 할 때 전체 검증 문자열 과 일치 하도록 앞 뒤로 ^ $ 를 추가 해 야 합 니 다.검색 / 교체 시 이 한정 을 추가 할 지 여 부 는 검색 요구 에 따라 결정 되 며, 이 밖 에 \b 가 아 닌 앞 뒤 ^ $ 를 추가 해 야 할 수도 있다.이 표 에 열 거 된 정규 표현 식 은 개별적 인 것 을 제외 하고 앞 뒤 에 어떠한 제한 도 추가 하지 않 았 으 니 필요 에 따라 스스로 처리 하 십시오.
우선권 순서
정규 표현 식 을 구성 한 후에 수학 표현 식 처럼 값 을 구 할 수 있다. 즉, 왼쪽 에서 오른쪽으로 우선권 순서에 따라 값 을 구 할 수 있다.다음 표 는 최고 우선 순위 부터 최저 우선 순위 까지 각종 정규 표현 식 연산 자의 우선권 순 서 를 보 여 줍 니 다.
조작 부호
묘사 하 다.
\
전의 부
(), (?:), (?=), []
괄호
*, +, ?, {n}, {n,}, {n,m}
한정 부호
^, $, \anymetacharacter
위치 와 순서
문자 클래스 일치
문자
매 칭
[...]
괄호 안의 임의의 문자
1
괄호 안에 없 는 임의의 문자
.
줄 바 꿈 문자 와 다른 유 니 코드 줄 종지 부 를 제외 한 임의의 문자
\w
ASCII 문자 로 구 성 된 모든 단 어 는 [a - zA - Z0 - 9] 와 같 습 니 다.
\W
ASCII 문자 로 구 성 된 단어 가 아 닌 단 어 는 2 와 같 습 니 다.
\s
유 니 코드 공백 문자
\S
유 니 코드 공백 문자 가 아 닌 모든 문자
\d
모든 ASCII 숫자 는 [0 - 9] 에 있 습 니 다.
\D
ASCII 숫자 를 제외 한 모든 문 자 는 3 과 같 습 니 다.
\b
퇴 격 직접 량
반복 문자 일치
문자
매 칭
{n,m}
이전 항목 과 최소 n 회 일치 하지만 m 회 를 초과 할 수 없습니다.
{n,}
이전 n 회 이상 일치
{n}
이전 n 회 일치

이전 항목 과 0 번 또는 1 번 일치 합 니 다. 즉, 이전 항목 은 선택 할 수 있 습 니 다. {0, 1} 과 같 습 니 다.
+
이전 항목 과 1 회 또는 여러 번 일치 합 니 다. {1,}
*
이전 항목 과 0 번 또는 여러 번 일치 합 니 다. {0,}
문자 클래스: 닻 문자 일치
메타 문자 / 메타 기호
매 칭
$
문자열 의 끝 과 일치 합 니 다. 여러 줄 검색 에서 한 줄 의 끝 과 일치 합 니 다.
^
문자열 의 시작 과 일치 합 니 다. 여러 줄 검색 에서 한 줄 의 시작 과 일치 합 니 다.
\A
일치 하 는 문자열 시작 부분 만
\b
단어 경계 와 일치 합 니 다. 단어 가 [] 안에 있 을 때 유효 하지 않 습 니 다.
\B
비 단어 경계 일치
\G
현재 검색 의 시작 위치 와 일치 합 니 다.
\Z
일치 하 는 문자열 끝 이나 줄 끝
\z
문자열 끝 에 만 일치
문자 클래스: 기록 문자 일치
메타 문자 / 메타 기호
일치 상황
(string)
역방향 참조 에 사용 할 그룹
\ 1 또는 $1
첫 번 째 그룹의 내용 과 일치 합 니 다.
\ 2 혹은 $2
두 번 째 그룹의 내용 과 일치 합 니 다.
\ 3 혹은 $3
세 번 째 그룹의 내용 과 일치 합 니 다.
정규 표현 식 수식 자
          
i                   
g                ,             
m              ,^             ,$             

RegExp 방법RegExp 대상 은 세 가지 방법 이 있다. test()、exec() compile()。
test():          。       。
exec():      ,               ,        

compile()          ,             。 

String 대상 의 정규 표현 식 방법
방법.
속뜻
match(pattern)
pattern 의 하위 문자열 이나 null 을 되 돌려 줍 니 다.
replace(pattern, replacement)
replacement 으로 pattern 바 꾸 기
search(pattern)
문자열 의 pattern 시작 위 치 를 되 돌려 줍 니 다.
split(pattern)
지정 한 pattern 으로 분 리 된 문자열 을 되 돌려 줍 니 다.
정규 표현 식 만 들 기
정규 표현 식 을 만 드 는 방법 은 수학 표현 식 을 만 드 는 방법 과 같다.즉, 여러 개의 메타 문자 와 조작 문자 로 작은 표현 식 을 결합 하여 더 큰 표현 식 을 만 드 는 것 이다.한 쌍 의 구분자 사이 에 표현 식 모드 를 넣 은 여러 구성 요 소 를 통 해 정규 표현 식 을 만 들 수 있 습 니 다.js 에 있어 서 구분자 가 한 쌍 의 정사 봉 (/) 문자 이다.예 를 들 면:
/expression/

VBScript 의 경우 정규 표현 식 의 경 계 를 확인 하기 위해 따옴표 (") 를 사용 합 니 다.예 를 들 면:
"expression"

예 를 들다
//        (    ,  5-16  ,         
    var re =new RegExp("^[a-zA-Z][a-zA-Z0-9_]{5,19}$");
       `if(re.test(aaaa)){
            alert("    ");
        }else{
        alert("    ");
    }

정규 표현 식 의 구성 요 소 는 하나의 문자, 문자 집합, 문자 범위, 문자 간 의 선택 또는 모든 구성 요소 의 임 의 조합 일 수 있 습 니 다.
match 방법
/*   match           */ 
var pattern = /box/ig;//     
var str = 'This is a Box!,That is a Box too'; 
alert(str.match(pattern)); //      Box,Box
console.log(str.match(pattern).length);//       

검색 방법
/*   search        */
var pattern = /box/ig;
var str = 'This is a Box!,That is a Box too'; 
console.log(str.search(pattern));//       ,     -1 

PS: 검색 방법 을 찾 으 면 되 돌아 오기 때 문 입 니 다. 즉, g 전역 이 필요 없습니다.
replace 방법
/*   replace         */
var pattern = /box/ig;
var str = 'This is a Box!,That is a Box too'; 
console.log(str.replace(pattern, 'Cat'));//  Box      Cat

split 방법
/*   split         */

 var pattern = / /ig;
 var str = 'This is a Box!,That is a Box too';         
 console.log(str.split(pattern));//          

exec 방법
/*              */

function count(str){
    var b,r=/def/g;
    while(b = r.exec(str)){
        console.log(b);
    }
}
count('abcdefabcdefabcdefabcdef');

출력:
[ 'def', index: 3, input: 'abcdefabcdefabcdefabcdef' ]
[ 'def', index: 9, input: 'abcdefabcdefabcdefabcdef' ]
[ 'def', index: 15, input: 'abcdefabcdefabcdefabcdef' ]
[ 'def', index: 21, input: 'abcdefabcdefabcdefabcdef' ]

 

정규 표현 식 선택
정규 표현 식 은 1 개 이상 의 정규 표현 식 서열 을 포함 하 는 것 을 선택 합 니 다.이 시퀀스 들 은 세로 선 (|) 문자 로 구 분 됩 니 다.이 시퀀스 의 모든 항목 이 일치 하 는 조건 에 부합된다 면 이 선택 은 일치 합 니 다.그 는 순서대로 매 칭 할 것 이다.
 "into".match(/in | int/);

이상 은 into 에서 일치 합 니 다 in.그러나 그 는 일치 하지 않 을 것 이다 int. 왜냐하면 in 는 이미 일치 에 성 공 했 기 때문이다.
정규 표현 식 전의
\ / [ ] () { }  ? + * | . ^ $

와 글자 그대로 일치 하려 면 하나의 \ 접두사 로 전 의 를 해 야 합 니 다.\ 접 두 사 는 자모 나 숫자 를 면 화 할 수 없다.
\f :    

: \r : \t : (tab) \^ ^ \$ $ \. (.)

실례
String.prototype.trim = function () {
    return this.replace(/(^\s*)|(\s*$)/g,'');
};
^ 문자열 은 반드시 뒤의 규칙 으로 시작 해 야 한 다 는 것 을 나타 내 고 (^\s*) 는 0 개의 빈 칸 이나 여러 개의 빈 칸 으로 시작 하 며 뒤의 (\s*$) 은 0 개의 빈 칸 또는 여러 개의 빈 칸 으로 끝 난 다 는 뜻 이다.
특정 문자열 일치
    ^[A-Za-z]+$  //   26           
    ^[A-Z]+$  //   26              
    ^[a-z]+$  //   26              
    ^[A-Za-z0-9]+$  //      26           
    ^\w+$  //     、26                

평가: 가장 기본 적 이 고 가장 많이 사용 되 는 표현 식 입 니 다.
사유 지도
JavaScript学习总结(八)正则表达式_第1张图片
  • ... ↩
  • a-zA-Z0-9 ↩
  • 0-9 ↩
  • 좋은 웹페이지 즐겨찾기