컴퓨터프로그래밍

자바 스크립트, 정규식 : 예제, 정규식 검사

그것은 우리가 보지해야하지만, 특정 조건 하에서 그렇게, 특정 장소에서, 변경된 데이터에 따라 적절한 양으로, 보통의 검색 및 교체하는 것이 분명 해졌다 때까지 하이퍼 텍스트 언어의 출현하지만, 전에 오히려 기능은 정교한 조직 프로그래머. 프로그래밍 언어로 기술 조사의 걸작을 만들고 데이터베이스가 샘플링 조건의 형태로 뛰어, 저장 프로 시저, 트리거 및 부피가 큰 샘플 관계형 정보 트랙의 다른 수단을 갖추고 있습니다. 혁명에 정규 표현식의 모양은 연결되지 않았다,하지만 정보를 찾아 대체하는 유용하고 편리한 방법이었다. 예를 들어, 이메일 크게 방문자의 등록을 단순화 자바 스크립트 정규 표현식은 존재하지 않는 주소로 메시지를 전송하는 웹 사이트를로드하지 않습니다.

자바 스크립트 정규 표현식 () 같이 IndexOf 훨씬 더 produmannnyh 시퀀스 is 기존의 순환 및 운영자의 프레임에서 호출 말을하지만 스크립트 코드는 컴팩트하지만, 미숙 이해 조금 만든 것을 말할 수 없다, 명확하게 할 수있다.

개체 정규식 = + 템플릿 엔진

정규 표현식은 - 템플릿 + 엔진입니다. 라인에 적용, 패턴 연기자 - 자바 스크립트 객체 - - 정규 표현식, 두 번째 첫 번째 정규 표현식 사실이다. 각 프로그래밍 언어에 대한 정규 표현식을 구현하는 엔진이 다릅니다. 모든 차이가 중요하지만, 그것은 염두에 두어야뿐만 아니라에 앞서 동작에 정규 표현식을 반드시 확인해야한다.

정규 표현식을 작성하는 특별한 표기법은 아주 사용하기 쉽고 매우 효과적이지만, 개발자에서 관리, 깔끔함과 인내를 필요로한다. 표기하여 정규 표현식 패턴에 익숙해 질 필요가있다. 이것은«자바 스크립트 정규 표현식을 구현하기위한 메커니즘의 논리이며, 일시적 유행이 아니다. "

정규 표현식 패턴

두 가지 옵션이 허용 :

VAR의 expOne = / ABC의 * / I;

VAR expTwo = 정규식 ( "ABC *", "I");

전형적으로는 첫 번째 방법을 사용 하였다. 두 번째 경우에는 따옴표가 있기는 문자를 사용하는 '\', 그것은 일반적인 규칙에 따라 이스케이프해야합니다.

'나'- 플래그가 "대소 문자 구분"을 나타냅니다. «글로벌 검색 '과'm '- - 여러 줄 검색 당신은 또한 플래그'g '를 사용할 수 있습니다.

기호는 '/'템플릿을 사용하는 것이 일반적 나타냅니다.

시작과 정규 표현식의 끝

은 '^'단부에 있어야하는 문자 (들)를 결정하는 문자 (들)로부터 정규식을 시작하고, '$'을 정의한다. 당신은 그들이 다른 의미를 가지고 표현, 내부 그들과 함께 실험을해서는 안된다.

예를 들어,

VAR의 eRegExp = 새로운 정규식 (cRegExp, 'I');

var에 cRegRes = '';

VAR STEST = 'AbcZ';

경우 (eRegExp.test (STEST)) {

cRegRes + = '- 예';

} 그밖에 {

cRegRes + = '- 없음';

}

VAR dTestLine = document.getElementById를 ( 'scTestLine');

dTestLine.innerHTML는 = '식 /'+ cRegExp + '/ 행 "'+ STEST + '' '+ cRegRes.

요소 'scTestLine'가 발생한다 (cRegExp 변수에 대응하는 의미를 갖는다) :

표현 / ^ AbcZ $ / 문자열 "abcz"에 대한 - 예

당신은 '내가'플래그를 제거하면, 결과는 다음과 같습니다

표현 / ^ AbcZ $ / 문자열 "abcz"에 대한 - 없음

정규 표현식의 내용

정규 표현식 검색의 대상이되는 일련의 문자입니다. 식 / 쿼티는 / 항목을 찾고이 순서입니다 :

식 / 쿼티 / "QWERTY"문자열 - 예

식 / 쿼티 / "123qwerty456"문자열 - 예

'^'변화는 식이다 :

표현 / ^ 쿼티 / "123qwerty456"문자열 - 없음

표현 / ^ 쿼티 / "qwerty456"문자열 - 예

유사하게, 광고 기호의 끝. 정규 표현식은 일관성을 허용 : 예를 들어, [az]와 [AZ], [0-9] -이 경우 또는 그림에서 알파벳의 모든 문자. 러시아어 문자도 사용할 수 있지만 (받고자 노력한다) 문자열의 인코딩 및 페이지에주의를 기울여야한다. 종종 러시아어 문자뿐만 아니라 특수 문자, 코드를 설정하는 것이 바람직하다.

그들의 수는 다음과 같이 주어진다과 정규 표현식은 특정 위치에서 특정 심볼의 존재에 대한 옵션을 지정할 수 형성 할 때 '*'= 0 회 이상 반복하거나; '+'= 1 회 이상 반복; {1} '+'로 동일하다; {N} = N 회 반복 정확하게; {N} = N 회 이상 반복; m의 N 배의 {N, m} = 반복.

괄호를 사용하면 옵션의 문자 세트를 지정할 수 있습니다. 그것은 다음과 같습니다. [ABCD] = [AD] = 모든 네 심볼 'A', 'B', 'C'또는 'D'. 당신은 그렇지 지정할 수 있습니다. 세트에서 규정 이외의 문자 [^ ABCD]는 'A'이외의 문자 'B', 'C'또는 'D'를 =. '?' 그것은이 시점에서 심볼이 될 수 없음을 나타냅니다. '.' 줄 바꿈을 나타내는 이외의 문자를 지정합니다. 이 '\ n을', '\ 연구', '\의 u2028'또는 '\의 u2029'. 식이 '\이야 * | \의 S의 *'| 바꿈을 포함하는 임의의 문자의 검색을 의미 = '* \ S는 \는 S]'.

정규 표현식의 단순화 된 버전

검색 공간, 또는 그것의 부족, 즉 모든 것을 라인에이다 - | 표현은 '* \ S는 \ S]'. 그의 부재 -이 경우, 심볼 '\ s에'는 공간, '\ s'을 나타냅니다.

마찬가지로, 당신은 진수를 검색 할 '\ d 개'를 사용할 수 있으며, '\ D는'숫자가 아닌 문자를 찾을 수 있습니다. 표기법 '\ F', 'r'와 '\ n'는 용지 공급, 캐리지 리턴 및 공급 라인에 대응한다.

탭 문자 - '\의 t', 수직 - '\의 V'. 지정은 '\ W'어떤 라틴 알파벳 문자 (문자, 숫자 및 밑줄 표시) = [이 A-ZA-z0-9_]를 찾습니다.

'W \'지정은 [^ A-ZA-z0-9_] 동일하다. 이 알파벳, 숫자 또는 '_'의 편지가 아닌 임의의 문자를 의미합니다.

검색 문자 '\ 0'= 검색 NUL 문자. 검색 '\ xHH'또는 '\ 어 -'= 검색 문자 코드 또는 HHHH HH 각각. H - 16 진수.

권장 문구와 정규 표현식의 코딩

모든 정규 표현식은 신중하게 행의 다른 버전에서 테스트하는 것이 중요합니다.

작아집니다 정규 표현식 오류를 만드는 경험을 바탕으로, 그럼에도 불구하고 항상 쓰는 정규 표현식의 규칙 자신의 지식은 "정규 시즌이"한 언어에서 다른 언어로 전송 특히 사실 일 수 없음을 명심해야한다.

고전적인 (정확한 표시) 및 정규 표현식의 단순화 된 버전 사이에 선택, 처음 선호하는 것이 좋습니다. 결국, 고전 항상 명확하게 모두가 추구 것으로 표시됩니다. 정규 표현식 또는 검색 문자열이 러시아어 문자가있는 경우, 하나의 인코딩 모든 라인과 정규 표현식을 수행하는 자바 스크립트 코드를 찾을 작동하는 페이지로 연결되어야합니다.

문자 처리, 비 - 라틴 알파벳이있을 때, 문자 코드가 아닌 문자 자체의 표시를 고려하는 것이 의미가 있습니다.

자바 스크립트 정규 표현식의 검색 알고리즘을 구현할 때주의 깊게 확인해야합니다. 문자 인코딩을 제어하는 것이 특히 중요하다.

정규 표현식에서 괄호

시퀀스 변종 - 괄호가 있어야합니다 또는 특정 장소에있을 수 없습니다 기호 및 라운드에 대한 옵션을 정의합니다. 그러나 이것은 단지 일반적인 규칙입니다. 그것에서 예외가 없지만, 다양한 애플리케이션이있다.

VAR의 cRegExp = "[AZ] * (PNG | JPG | GIF).";

VAR의 eRegExp = 새로운 정규식 (cRegExp, 'I');

var에 cRegRes = '';

var에 STEST = 'picture.jpg 대신';

경우 (eRegExp.test (STEST)) {

cRegRes + = '- 예';

} 그밖에 {

cRegRes + = '- 없음';

}

결과 :

라인 "picture.jpg 대신"에 대한 /[az]*.(png|jpg|gif)/ 표현 - 예

"picture.jpg 대신"라인 /^[ad][az]*.(png|jpg|gif)/ 표현 - 없음

라인 "apicture.jpg"에 대한 /^[ad][az]*.(png|jpg|gif)/ 표현 - 예

"apicture.jg"라인 /^[ad][az]*.(png|jpg|gif)/ 표현 - 없음

모든 것을, 다음 별표 제로 회 존재할 수 주목해야한다. 이것은 "정규 시즌이"적어도 예상치 못한 방식으로 작동 할 수 있다는 것을 의미한다.

정규식을 확인 - 테스트 이메일을

교체 경기, 검색, 분할 : 두 가지 방법, 테스트 및 간부를 획득하고, 선 자신의 방법에있는 개체 (문자열) (함수)에서 사용할 수있는 일반 자바 스크립트 표현에서.

시험 방법은 이미 당신이 정규 표현식의 정확성을 확인할 수 있습니다, 증명되었다. 방법 결과 : 참 / 거짓.

다음 자바 스크립트 정규 표현식을 고려하십시오. "확실히 어렵지만"의 수에서 이메일을 확인 :

VAR eRegExp = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s @ "] +) *) (|."+ ")) @ ((\ [0-9] {1,3} \ [0-9] {1,3} \ [0-9] {.. . 1,3} \ [0-9] {1,3}]) (|. ([A-ZA-Z \ -0-9] + \) + [A-ZA-Z] {2}) ) $ /;

문자열 VAR STEST ='SlavaChip@sci.by '는 다음이 문자열이 올바른 이메일 주소가 true를 제공합니다. 감사는 eRegExp.test (STEST)에 의해 수행되었다.

실용 : 전자 메일 처리

간부 방법 출력 배열을 제공하고, 전화 :

VAR의 aResult = eRegExp.exec (STEST);

cRegRes 용 = '
'+ aResult.length + '
';
{(; 나는 cRegRes + = aResult [내가] +
'';
}

그것은 다음과 같은 결과를 제공합니다 :

9
Slava.Chip@sci.by
Slava.Chip
Slava.Chip
.Chip
정의되지 않은
sci.by
정의되지 않은
sci.by
공상.

다른 방법은 유사하게 작동합니다. 자신을 확인하는 것이 좋습니다. 개발 및 정규 표현식을 사용, 그것은 실제로 작동하는 것이 바람직하다, 코드 복사가 여기에 항상 바람직하지 않습니다.

인기 "정규 시즌"

자바 스크립트 정규 표현식은 많은 쉬운 옵션이 있습니다뿐만 아니라 이메일에 주어진. 예를 들어, /^[\w-\.]+@[\w-]+\.[az]{2,3}$/i. 그러나, 본 실시 예는 계정으로의 이메일 어드레스 레코드의 모든 실시 걸린다.

물론, 당신은 자바 스크립트 정규 표현식에 자신의 디자인을하기 전에 제안 된 방법을 분석하기 위해, 동료의 경험을 볼 수 있어야합니다. 그러나 일부 어려움이있다. '/', '\'를하거나 따옴표 : 우리는 자바 스크립트 정규 표현식 (복사 할 때의 예) 필수 문자를 복제 할 수 있다는 것을 기억해야한다. 이것은 당신이 긴 검색 할 수 있습니다 오류로 이어질 것입니다.

이 계정에 평소 가지고하는 것이 중요하다 "인간의 차원을." 방문자 (사람)가 될 수있는 전화, 대한 공식적인 자바 스크립트 정규 표현식 후에는 다른 방식으로 주어진다 : 123-45-67 (29) 1234567, 80291234567 또는 375291234567합니다. 그리고 그것은 모두 같은 숫자입니다. 여러 패턴을 맞춤법 항상 허용하지 않고, 불필요한 불편이나 제한을 만들 수 있습니다 번호를 기입하기위한 규칙의 견고한 고정. 옵션 / ^ \ d를 [\ D \ (\) \ -] {4,14} \ d 개 $ / i를 당신이 당신의 전화 번호를 확인 대부분의 경우에 적합합니다.

당신은 자바 스크립트 정규 표현식, 숫자 만 검사를 확인하려면, 심지어 간단한 케이스는 설명이 필요합니다. 그것은 정수 나 분수, 과학적 표기법, 또는, 보통의 양 또는 음의 수를 고려해야한다. 또한 계정에 통화 기호의 존재, 소수점 이하의 자리수와 화음의 숫자의 정수 부분의 분할을 할 수 있습니다.

발현 / ^ \ 차원 + $으로 / I 숫자 만 확인 /^\d+\.\d+$/i 식은 수치의 소수부를 나타내는 포인트의 사용을 허용한다.

자바 스크립트 정규식 점검 정보, 여권 데이터 및 법적 t 어드레스를 입력 할 때 특히 중요하다 하드 입력 데이터의 포맷을 나타내는데 이용 될 수있다. D.

날짜를 확인 - 복잡한 간단한

또 다른 자바 스크립트 정규 표현식을 고려하십시오. 전화 번호의 수와 같은 최신 예를 들면, 강성과 유연성 사이에서 선택을 나타냅니다. 이벤트의 날짜 - 자주 투여해야하는 중요한 데이터 중 하나. 그러나 특정 형식으로 입력 고정 : "DD-MM-YYYY '또는'd.m.gg 것은 '자주 고객의 불만에 연결됩니다. 당신은 단지 하나의 숫자를 입력 할 때 하루 - 투 개월의 입력 필드에서의 전환은, 고전적인 HTML 형식의 전체 일어날 수없고, 두 번째 입력이 어려울 수 있습니다. 예를 들어, 하루의 필드에 3 도입과 다음 숫자 2는 제 1 대체하지 않습니다, 물론, 불편의 원인이됩니다, 그녀 (32)에 기인한다.

효율성과 정규 표현식의 편의 기본적으로 방문자와의 대화의 일반적인 구성에 따라 달라집니다. 한 경우, 날짜를 표시하기 위해이 다른 경우는 일, 월, 연도의 다양한 분야를 제공하는 것이 필요하다, 형태의 하나 개의 입력 필드를 사용하는 것이 좋습니다. 그러나 추가 "코드의 비용은"윤년 개월 수, 그들의 일 수를 확인합니다.

, 정규 표현식 메모리를 검색 및 교체

자바 스크립트는 String 객체의 방법을 사용하여 (정규 표현식)을 교체하고 우리가 가치를 발견하고 즉시 변경할 수 있습니다. 이것은 양식 필드의 내용을 편집, 타이핑 에러를 보정하기위한 다른 하나의 프리젠 테이션 포맷으로부터 데이터를 변환하기에 유용하다.

VAR의 cRegExp = / ([A-Z] +) \ S ([A-Z] +) \ S ([A-Z] +) / I; 검색 할 때 // 세 가지 '변수'이다

var에 STEST은 = '이 문서는 좋다!';
VAR cRegRes = sTest.replace (cRegExp "$ 2 $ 3 $ 1");

VAR dTestLine = document.getElementById를 ( 'scTestLine');

dTestLine.innerHTML = '표현'+ cRegExp + ' "+ STEST +' '설정'문자열에 '+ cRegRes;

결과 :

발현 / ([AZ] +) \ S ([AZ] +) \ S ([AZ] +) / I는 라인 "이 문서가 좋다!" 아웃 : 기사이 좋다!

브라켓 쌍의 수 ($ 1, $ 2, ...) - 괄호 각 쌍을 수행 할 때 상기 '변수'의 결과를 $ N, N- 저장한다. 종래와 달리, 여기에서 변수 번호는 1이 아닌 0이다.

일반 권고

정규 표현식 코드를 간단하게,하지만 시간은 종종 차이가 개발. 좀 더 복잡한 식으로 결합하여 만든 후, 간단한 디자인과 함께 시작할 수 있습니다. 당신은 정규 표현식 또는 특수 지역 도구를 테스트하기 위해 다양한 온라인 서비스를 사용할 수 있습니다.

최선의 선택은 정규 표현식의 자신의 라이브러리와 새로운 발전을 테스트하기 위해 자신의 도구를 만들 것입니다. 이 경험을 통합하고 신속하게 안정적이고 편안한 디자인을 구축하는 방법을 배울 수있는 가장 좋은 방법입니다.

반복 횟수가 단순하고 편의의 원칙에 의해 인도되어야한다 나타내는 문자와 문자열, 즉, 특수 문자 '*', '+'와 중괄호의 반복 사용. 그것의 작업의 시작 부분에 정규 표현식 실현하고, 그 결과가 브라우저에서 사용하는 엔진의 힘을 전적으로하는 것이 중요합니다. 모든 언어는 자바 스크립트에 해당합니다. 각 브라우저는 가져올 수 있습니다 개인 환경 설정을 정규 표현식의 해석에.

호환 정규 표현식에, 또한 관련이있다,뿐만 아니라 페이지와 스타일 시트입니다. 이 페이지에는 자바 스크립트가하는 성공적 다양한 브라우저에서 일 때만 잘 작동 간주 될 수 있습니다 사용합니다.

자바 스크립트, 문자열 및 정규식

자바 스크립트에서 방문자의 브라우저에서, 클라이언트 수준에 적절한 작업함으로써, 개발자의 높은 기술을 필요로한다. 충분히 긴 당신은 자바 스크립트 코드를 브라우저의 자체 자금 또는 타사 확장, 코드 편집기, 독립적 인 프로그램의 도움을 디버깅 할 수있는 기회를 가질 수있다.

그러나 모든 경우, 디버거 처리하고, 병목 현상을 감지 개발자, 신속한 오류 검출을위한 좋은 지원을 제공 할 수 있습니다. 시간은 컴퓨터가 먼 과거에, 계산에 집중되었을 때. 정보 라인 객체가 중요한 역할을하게되었다에 이제 특별한주의를 지불합니다. 철강 문자열의 수, 그 본질은 단지 적절한 시간과 적절한 장소에 명시.

정규 표현식은 라인의 가능성을 강화하지만, 자기 존중을 필요로한다. 디버그 정규식은 그의 작품에서, 가능하더라도, 너무 재미 있지 아이디어를 시뮬레이션합니다.

진정한 안전한 코드, 각 페이지의 안정적인 운영 및 전체 사이트 - 객체의 문자열, 구문과 자바 스크립트의 의미를 의미하는 정규식 객체의 구조와 논리를 이해.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ko.delachieve.com. Theme powered by WordPress.