정규 표현식은 문자열 일치 패턴을 설명합니다.이 패턴은 문자열에 특정 하위 문자열이 포함되어 있는지 확인하는 데 사용할 수 있으며, 일치하는 하위 문자를 교체하거나 특정 문자열의 특정 조건을 충족하는 서브 스트링을 꺼내십시오.
정규 표현은 자주 사용되지 않기 때문에 자주 잊기 쉽습니다. 다음 편집자는 일반적으로 사용되는 기능과 기능을 여기에 향후 시청을 위해 간결한 방식으로 나열합니다.
regexp 객체에는 일반적으로 사용되는 두 가지 기능이 있습니다
1. 테스트 기능
사용법 : regexpobject.test (String)
return : true 문자열 문자열에 텍스트 일치 regexpobject가 포함되면, 그렇지 않으면 false.
설명 :이 방법에는 특별한 것이 없으며 수정자를위한 특별한 치료법이 없습니다.
예:
var url = 'http://www.baidu.com?a=1&b=2&c=3 ';var reg = /a=1/;console.log(reg.test(url)); // 출력 결과는 참입니다
2. exec 함수
사용법 : regexpobject.exec (String)
반환 : 일치하는 결과가 저장되는 배열을 반환합니다. 일치하지 않으면 반환 값이 NULL입니다.
설명하다:
exec () 메소드는 매우 강력합니다. 일반적인 방법이며 test () 방법과 정규식을 지원하는 방법보다 사용하기에 더 복잡합니다.
exec ()가 일치하는 텍스트를 찾으면 결과 배열이 반환됩니다. 그렇지 않으면 NULL을 반환하십시오. 이 배열의 0 번째 요소는 정규 표현식과 일치하는 텍스트입니다. 첫 번째 요소는 RegexPobject의 첫 번째 하위 표현과 일치하는 텍스트입니다. 두 번째 요소는 regexpobject의 두 번째 하위 표현과 일치하는 텍스트입니다. 배열 요소 및 길이 속성 외에도 exec () 메소드는 두 가지 속성을 반환합니다. 인덱스 속성은 텍스트와 일치하는 첫 번째 문자의 위치를 선언합니다. 입력 속성은 검색된 문자열을 저장합니다. 비 글로벌 regexp 객체의 exec () 메소드를 호출 할 때 반환 된 배열은 method.match ()를 호출하여 리턴 된 배열과 동일하다는 것을 알 수 있습니다.
그러나 regexpobject가 전 세계 정규 표현 일 때, exec ()의 동작은 약간 더 복잡합니다. RegexPobject의 LastIndex 속성에 의해 지정된 문자에서 String String을 검색하기 시작합니다. exec ()가 표현식과 일치하는 텍스트를 찾으면 일치 한 후 regexpobject의 lastindex 속성을 일치하는 텍스트의 마지막 문자의 다음 위치로 설정합니다. 즉, exec () 메소드를 반복적으로 호출하여 문자열의 모든 일치하는 텍스트를 반복 할 수 있습니다. exec ()가 더 이상 일치하는 텍스트를 찾을 수 없으면 NULL을 반환하고 LastIndex 속성을 0으로 재설정합니다.
예:
수정자를 이용한 정규 표현 g
var url = 'http://www.baidu.com?a=1&b=2&c=3 ';var reg = /(..............&=] +)= (^?&=] :/g;console.log.reg.exec(url)); // [ "a = 1", "a", "1", index : 21, 입력 : "http://www.baidu.com? // [ "b = 2", "b", "2", index : 25, 입력 : "http://www.baidu.com? // [ "c = 3", "c", "3", index : 29, 입력 : "http://www.baidu.com? //nullreg.lastIndex = 0; //이 코드는 매우 중요합니다. Console.log (reg.exec (url)) 이해에주의를 기울이십시오. // [ "a = 1", "a", "1", index : 21, 입력 : http://www.baidu.com?a=1&b=2&c=3]
수정자가없는 정규식 g
var url = 'http://www.baidu.com?a=1&b=2&c=3 ';var reg = /(..............&=] +)= (^?&=] :/g;console.log.reg.exec(url)); // [ "a = 1", "a", "1", index : 21, 입력 : "http://www.baidu.com? // [ "a = 1", "a", "1", index : 21, 입력 : "http://www.baidu.com? // [ "a = 1", "a", "1", index : 21, 입력 : "http://www.baidu.com? // [ "a = 1", "a", "1", index : 21, 입력 : "http://www.baidu.com? console.log (reg.exec (url)); // [ "a = 1", "a", "1", index : 21, 입력 : "http://www.baidu.com? console.log (reg.exec (url)); // [ "a = 1", "a", "1", index : 21, 입력 : http://www.baidu.com?a=1&b=2&c=3]
다른 것을 찾았습니까? 함수 설명을주의 깊게 읽으면 이해하게됩니다 ^_ ^
규칙 성을 지원하는 문자열 객체의 4 가지 함수가 있습니다. 우리는 그 중 2 개에 대해서만 이야기 할 것입니다.
1. 일치 함수
사용법 : stringObject.match (searchValue | regexp), 여기서는 regexp 모드에 대해서만 이야기합니다.
반환 값 : 일치하는 결과를 저장하는 배열. 이 배열의 내용은 regexp에 글로벌 플래그 g가 있는지 여부에 따라 다릅니다.
설명하다:
match () 메소드는 String StringObject를 검색하여 하나 이상의 텍스트 일치하는 regexp를 찾습니다. 이 방법의 동작은 regexp에 플래그 g가 있는지 여부에 따라 크게 달라집니다.
regexp에 플래그 g가 없으면 match () 메소드는 stringobject에서 한 번만 일치 만 수행 할 수 있습니다. 일치하는 텍스트가 없으면 match ()는 null을 반환합니다. 그렇지 않으면, 발견 된 일치하는 텍스트에 대한 정보를 저장하는 배열을 반환합니다. 배열의 0 번째 요소는 텍스트와 일치하는 반면, 나머지는 텍스트가 정규 표현식의 하위 표현과 일치합니다. 이러한 일반 배열 요소 외에도 반환 된 배열에는 두 가지 객체 속성이 포함되어 있습니다. 인덱스 속성은 stringObject에서 텍스트와 일치하는 시작 문자의 위치를 선언하고 입력 속성은 StringObject에 대한 참조를 선언합니다.
regexp에 플래그 g가 있으면 match () 메소드는 글로벌 검색을 수행하여 StringObject에서 모든 일치하는 하위 문자를 찾습니다. 일치하는 서브 스트링이 발견되지 않으면 NULL이 반환됩니다. 하나 이상의 일치하는 하위 문자가 발견되면 배열이 반환됩니다. 그러나 Global Match에 의해 반환 된 배열의 내용은 전자와는 매우 다릅니다. 배열 요소는 StringObject의 모든 일치하는 하위 문자를 저장하며 인덱스 속성 또는 입력 속성이 없습니다.
예:
수정 자없이 g
var url = 'http://www.baidu.com?a=1&b=2&c=3 ';var reg =/([^? & =]+) = ([^? & =])*/; var result = url.match (reg); console.log (resat); // [ "a = 1", "a", "1", index : 21, 입력 : "http://www.baidu.com? //21console.log(result.input); //http://www.baidu.com?a=1&b=2&c=3" 숙소 .log(result.input); //http://www.baidu.com?a=1&b=2&c=3
수정 자와 함께 g
var url = 'http://www.baidu.com?a=1&b=2&c=3 ';var reg =/([^? & =]+) = ([^? & =])*/g; var result = url.match (reg); console.log (result); // [ "a = 1", "b = 2", "c = 3"] console.log (result.index); //undefinedConsole.log(result.input); //한정되지 않은
다른 것을 찾았습니까? 함수 설명을주의 깊게 읽으면 이해하게됩니다 ^_ ^
2. 함수를 교체하십시오
사용법 : stringObject.replace (regexp/substr, 교체)
반환 값 : 첫 번째 경기 또는 Regexp의 모든 경기를 교체 한 후 얻은 새 문자열.
설명 : 문자열 stringObject의 대체 메소드는 검색 및 교체 작업을 수행합니다. StringObject에서 regexp와 일치하는 하위 문자열을 찾고 해당 하위 문자열을 교체로 바꿉니다. regexp에 Global flag g가있는 경우 replace () 메소드는 모든 일치하는 하위 문자를 대체합니다. 그렇지 않으면 첫 번째 일치하는 하위 문자 만 대체합니다.
교체는 문자열 또는 함수 일 수 있습니다. 문자열 인 경우 각 경기는 문자열로 대체됩니다. 그러나 대체의 $ 문자는 구체적인 의미를 갖습니다. 다음 표에서 볼 수 있듯이, 패턴 일치에서 얻은 문자열은 교체에 사용될 것이라고 명시하고 있습니다.
| 성격 | 텍스트를 바꾸십시오 |
|---|---|
| $ 1, $ 2, ... $ 99 | Regexp의 첫 번째 ~ 99 번째 하위 표현과 일치하는 텍스트. |
| $ & | Regexp와 일치하는 부분 문자열. |
| $` | 일치하는 부분 문자열의 왼쪽에 텍스트. |
| $ ' | 일치하는 하위 문자 오른쪽에 텍스트. |
| $$ | 직접 측정 기호. ($ 기호로 바꾸고 싶을 때 두 $를 작성한다는 것을 의미합니다. |
예:
수정 자없이 g
var url = 'http://www.baidu.com?a=1&b=2&c=3 ';var reg =/([^? & =]+) = ([^? & =])*/; var url1 = url.replace (reg, function, function, (a, console.log (a, b, c, d, e); http://www.baidu.com?a=1&b=2&c=3return 'ok';}) console.log (url1); //http://www.baidu.com?ok&b=2&c=3
수정 자와 함께 g
var url = 'http://www.baidu.com?a=1&b=2&c=3 ';var reg =/([^? & =]+) = ([^? & =])*/g; var url1 = url.replace (reg, function, function, console.log (a, b, c, e); a = 1, a, 1, 21, http://www.baidu.com? 'ok';}) console.log (url1); //http://www.baidu.com?ok&ok&ok
두 번째 매개 변수가 문자열 인 경우
var url = 'http://www.baidu.com?a=1&b=2&c=3';var reg =/([^? & =]+) = ([^? & =])*/; // 수정자가없는 gvar url1 = url.replace (reg, "$ &") console.log (url1); //http://www.baidu.com?a=1&b=2&c=3var url1 = url.replace (reg, "$ 1") console.log (url1); //http://www.baidu.com?a&b=2&c=3var url1 = url.replace (reg, "$ 2") console.log (url1); //http://www.baidu.com?1&b=2&c=3var url1 = url.replace (reg, "$ '") console.log (url1); //http://www.baidu.com?&b=2&c=3&b=2&c=3var reg =/([^? & =]+) = ([^? & =])*/g; // modifier gvar url1 = url.replace (reg, "$ &") console.log (url1); //http://www.baidu.com?a=1&b=2&c=3var url1 = url.replace (reg, "$ 1") console.log (url1); //http://www.baidu.com?a&b&cvar url1 = url.replace (reg, "$ 2") console.log (url1); //http://www.baidu.com?1&2&3var url1 = url.replace (reg, "$ '") console.log (url1); //http://www.baidu.com?&b=2&c=3&c=3&
위의 것은 JS 문자열의 매치, 교체, 실행 및 기타 기능에 대한 포괄적 인 분석 및 편집자가 소개 한 정규식입니다. 모든 사람에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 모든 사람에게 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!