자바 스크립트에서 정규 표현식의 기본 응용 프로그램

정규 표현식 : 정규식

정규 표현식은 캡처와 같은 테스트 () 검증을 위해, 또한 사용할 수 있습니다 일치 (), 간부 인 ()를 사용할 수있다

STR =은 "좋은 좋은 학문, 일 일 위로!"하자 , 
(가) REG하자 = / \ D + /; // 디지털이 있는지 확인 
, reg.test (STR) // => 거짓 

STR = "2019년 10월 1일" ; 
reg.exec (STR); // => [ "2019", 인덱스 0, 입력 "원래 문자열"]

1. 쓰기 정규 표현식

만드는 방법은 두 가지가 있습니다 :

// => 실시 리터럴 생성 (두 슬래쉬 사이의 랩은 규칙 메타 문자 설명하는 데 사용된다) 
= / \ D + / 송출 된 REG1 ; 

// => 모드 생성자는 두 개의 매개 변수를 생성한다 : 요소 문자열, 문자열 규정 
송출의 REG2 = 새 새 정규 표현식 ( "\\ + D");

 

정규 표현식은 두 부분으로 구성 메타 문자  및  수정

 

위안 문자 :

한정 기호 메타 문자 : 발생 횟수를 설정합니다

*   // 여러 제로가   
+   // 복수 회 
?   // 영 또는이 
{N}   //이 N 회 발생 
{n은}   //이 를 N 회 발생 
{N, m은}   // N에 나타나는 m 번

특수 문자 요소 : 단일 또는 함께 조합은 특별한 의미를 나타냅니다

\         // 탈출 문자 (일반 -> 스페셜 -> 일반) 
.         // \ n보다 (줄 바꿈)를 제외한 모든 문자의 
^         // 되는 메타 문자로 시작하는 
$         // 마지막으로 메타 문자있는 상태를 
\ N-        // 개행 
\ D        // 0 ~ 9의 숫자 
\ D        // 0 ~ 9까지의 숫자, 비 (대소가 반대 의미) 
\ W        // 숫자, 문자, 밑줄 하나 개의 문자 
\의 S        // (공백, 탭, 폼 피드 등 포함) 공백 문자는 
\ T        // 탭 문자 (A TAB 키 : 네 개의 공간) 
\의 B        //는 단어 경계와 일치 
X | Y는       // 는 x 또는 y의 문자 
[XYZ]      // X 또는 Y 또는 Z 것은의 문자
[^는 XY]      // X / Y를 제외한 문자 
[AZ]      //이 이 범위 AZ 모든 문자를 지정할 [0-9A-ZA-는 Z _] === \ W 
[^ AZ]      // 하나 부정 "가 아닌" 
()        // 일반 그룹 기호가에 
(? :      // 촬영에서 일치하지 않음 
(? =)      // 긍정적 인 사전 조사 
(?!)      // 부정적인 사전 확인

공통 메타 : 자체의 의미를 대신하여

/여보세요 /      // 정규 경기는 "안녕하세요"입니다

 

둘째, 수정 :

    / * 정규식 개질제는 일반적으로 사용 : IMG * / 

I =>을하여 ignoreCase       // 무시 단어 경우 매치 
m을 => 여러 줄        // 여러 매칭 될 수 
G => 글로벌           // 글로벌 매칭

 
/A/.test ( ' 랄랄라 ') => false로 
/A/i.test('lalala') => true로

 



 

자세한 응용 프로그램의 메타 문자

^ $
REG 송출 = / ^ \의 D / ; 
을 console.log (reg.test ( "안녕하세요")); // => false로 
을 console.log (reg.test ( "2019hello")); // => true로 
을 console.log (reg.test ( "hello2019")); // => false로 

송출 REG = / \ D의 $ / ; 
을 console.log (reg.test ( "안녕하세요")); // => false로 
을 console.log (REG. 테스트 ( "2019hello")); // => false로 
을 console.log (reg.test ( "hello2019")); // => true로 

// => 추가하지 ^ / $ 2 : 문자열을 준수 에 대한 규칙의 내용 
송출의 REG1 = / \ D + / ;
 // =>문자열과 수는 규칙의 내용과 일치 : ^ / $ 플러스 둘은 
$ /를하자 REG2 = / ^ \ D + ; 

//=> 예 : 검증 전화 번호 (11 비트, 상기 제 1 수는있다) 
송출 REG = / ^ 1 \ {D} $ 10 /;

 

\
REG = /^2.3$/ 송출 , 
을 console.log (reg.test ( "2.3"));     // => true로 
을 console.log (reg.test () "2. 3 @");     // => true로 
콘솔 .LOG (reg.test ( "23"));     // => 거짓 

// => 만 소수점 표현 허용 제어 문자에 기초 
REG를 /^2\.3$/ = ; 
CONSOLE.LOG (REG. 테스트 ( "2.3"));     // => true로 
을 console.log (reg.test ( "2. 3 @"));     // => false로 

송출 STR = "\\ D" , 
REG = / ^ \ $ D /;      // => \ D 0-9 대표 
CONSOLE.LOG (reg.test (STR));      // = "false로 
REG = / ^ $ \\의 D /;     // => 특별 일반 변환 준수
CONSOLE.LOG (reg.test (STR));     // => 사실    
X | 및
REG = 송출 / ^ 18 | 29 $ / ; 
을 console.log (reg.test ( "18")); // => true로 
CONSOLE.LOG (reg.test ( "29")); // => true로 
콘솔 .LOG (reg.test ( "129")); // => true로 
CONSOLE.LOG (reg.test ( "189")); // => true로 
CONSOLE.LOG (reg.test ( "1829")) ; // => true로 
CONSOLE.LOG (reg.test ( "829")); // => true로 
CONSOLE.LOG (reg.test ( "182")); // => true로 
// --- 직접 그룹화 : | X Y의 혼란은 일반적으로 우리가 있기 때문에 우선 순위 => 괄호 괄호 변경 프로세스들이 작은 그룹 괄호를 동반하는 경우 쓰기, 우선 순위의 문제가있을 것입니다 
| 등록 번호 = / ^ (29 18 $ /) ; 
CONSOLE.LOG (reg.test는 ( ) "(18)는");// => 사실
CONSOLE.LOG (reg.test ( "29")); // => true로 
CONSOLE.LOG (reg.test ( "129")); // = "false로 
CONSOLE.LOG (reg.test ("189 ") ) // = "false로는 
// =>은 18 또는 29 일 수있다
[]
// 1에서 괄호에 나타나는 문자 일반적 의미 프록시 
송출 REG = / ^ [@ +] $ / ; 
을 console.log (reg.test ( "@")); // => true로 
을 console.log를 (reg.test ( "+")); // => true로 
CONSOLE.LOG (reg.test ( "@@")); // = "false로 
CONSOLE.LOG (reg.test (@"+ ")) ; // = "false로 

REG = / ^ [\ D] $ /; // => \ 또는 D 괄호 0-9 
CONSOLE.LOG (reg.test ("D ")); // ="false로 
CONSOLE.LOG (reg.test ( "\\")); // = "false로 
CONSOLE.LOG (reg.test ("9. ")); // => true로 

// 브래킷 다수의 부재 (2) 번호 
REG = / ^ [18이다] $ / ;
CONSOLE.LOG (reg.test ("1")); // => 진정한 
CONSOLE.LOG (reg.test ( "8")); // => 진정한 
CONSOLE.LOG (reg.test ( "18")); // => 허위 

등록 = / ^ [10-29] $ /; // => 1或者0-2或者9 
CONSOLE.LOG (reg.test ( "1")); // => 사실 
을 console.log (reg.test ( "9")); // => 진정한 
CONSOLE.LOG (reg.test ( "0")); // => 진정한 
CONSOLE.LOG (reg.test ( "2")); // => 진정한 
CONSOLE.LOG (reg.test ( "10")); // => 거짓

 

몇 가지 예 :

1. 확인이 유효한 숫자
    / * 규칙 분석 
    번호 또는 발생하지 않을 수있다 [+ - - * 1. +를 발생할 수? 
    * (2)는 0-9가 될 수있을 수 처음 이상 0 (\ D | ([1-9 ] \ + D)) 
    .? 뒤이어 + 진수 (\ \ + D)해야하는 경우 3. 소수 부분이 아닌 가능하다 * 
    * / 

   송출 REG = / ^ [+ - (\ D |? ([1-9] . \ D +)) (\ \ D +) $ /?;

 

2. 비밀번호 확인

// => 숫자, 문자, 밑줄 
   @ => 6 ~ 16 
   송출 발 = userPassInp.value, 
       REG = / ^ \ {W} $ -6,16- / ; 
   깃발에서하자 = reg.test (발) 


   기능 checkPass (발) {
        IF (val.length <6 || val.length.> 16 ) { 
           경고 ( '6-16 사이 여야! )
            반환 ; 
       } 
       면적하자 ='A '를,'B '....'_']; // => 숫자, 문자, 밑줄 포함 
       에 대한 합니다 (하자 I = 0; 나는 val.length을 <; 내가 ++ ) { 
           송출의 문자 = 발 [내가]
            IF (area.includes! (문자 )) { 
               경고 ( '형식이 올바르지 않습니다!' );
                반환 ; 
           } 
       } 
   }
 
3. 실제 이름을 확인
   / * 
    * 1. 문자 / ^ [\ u4E00- \ u9FA5] $ / 
    * 이름 길이 2 ~ 10 2. 
    * 3. 일부 번역 한자 (· [\ u4E00- \ u9FA5] {2,10}) { 0,2} 
    * / 

   송출 REG = / ^ [\ u4E00- \ u9FA5 {2,10} (· [\ u4E00- \ u9FA5 {2,10}) $ {0,2} /;
 
4. 사서함을 확인
  레지 = /^\w+((-\w+)|(\.\w+))*@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+하자 .) * \ [A-ZA-Z0-9] + $ / ; 
   
   // => \ W의 +는 ((- \ + W) (|. \ \ W +는)) * 
   // 1. 영숫자 밑줄 (1 시작 기타) 이상 
   // 2도 할 수있다 - 영숫자 문자 또는 숫자가 많은 시간에 전체적인 영을 강조 강조

 

5. ID 번호 (걸쳐 도립 시군로 특정 코드 번호와 일치하지만)
/ * 
    * 1 (18)의 총 
    마지막 하나는 X- 수있다 * 2 
    * 
    * ID 카드 여섯 전 : 도립 시군   
    * 중간 8 : 날짜 
    * 마지막 네 : 
    * 마지막 => X 또는 디지털 
    * = 끝에서 두 번째는> 짝수 - 홀수 F M 
    *를 계산하는 알고리즘의 나머지의 결과 
    * / 
   // .] | (X- \ D) $ /를는 REG = / ^ \ {D} 17하자 
   // => 패킷 괄호 두번째 작업 : 패킷 캡쳐, 다이쇼 일치하지 않는 정보만을 포착, 콘텐츠는 각각의 작은 패킷을 개별적으로 포착 할 수 
   있도록 등록 = / ^ (\의 D {6}) (\의 D {4}) (\ D {2}) (\ D {2}) \의 D {2} (\ D) (\ D | X-) $ / ; 
   reg.exec는 ( "123456789012345678"); // => 포착 결과가 배열, 콘텐츠의 패킷으로서, 개인마다 약간 취득

 

 

 

추천

출처www.cnblogs.com/zhongjiayi/p/11695866.html