홈페이지 » 코딩 » 웹 개발자를위한 유용한 Regex Code Snippets

    웹 개발자를위한 유용한 Regex Code Snippets

    정규 표현식은 모든 개발자의 툴 벨트에 있어야하는 강력한 도구입니다. 매우 복잡한 매개 변수를 기반으로 문자열을 비교하여 동적 웹 사이트를 구축 할 때 많은 시간을 절약 할 수 있습니다..

    웹 개발자는 소프트웨어 개발자와는 다른 업무에 직면하지만 동일한 코드 기초가 많이 남아 있습니다. 정규식 (또는 정규식)에는 가파른 초기 학습 곡선, 그러나 그들은 할 수있다. 올바르게 사용될 때 굉장히 강력하다..

    가장 까다로운 부분은 구문을 배우고 자신 만의 정규식 코드를 처음부터 작성하는 법을 배우는 것입니다. 시간을 절약하기 위해 개발 프로젝트에 통합 할 수있는 30 개의 서로 다른 정규식 코드 스 니펫을 구성했습니다. 정규 표현식은 단일 언어에만 국한되지 않으므로이 스 니펫을 다음 중 하나에 적용 할 수 있습니다. 자바 스크립트 PHP 또는 파이썬.

    1. 패스워드 강도

    (? =. * [0-9]. * [0-9]) (? =. * [AZ]. * [AZ]) (? =. * [! @ # $ & *] . * [az]. * [az]. * [az]). 8 $

    암호의 강도를 확인하는 것은 종종 주관적이므로 절대적인 정답은 없습니다. 하지만 당신이 처음부터 자신의 비밀 번호 강도 검사기를 작성하고 싶지 않다면이 정규식 미리보기 좋은 출발점이라고 생각합니다. (출처)

    2. 16 진수 색상

    \ # ([a-fA-F] | [0-9]) 3, 6

    웹 개발 분야는 16 진수 색상 코드로 유비쿼터스입니다. 이 정규식 스 니펫을 사용하여 임의의 문자열에서 16 진수 코드 일치를 가져올 수 있습니다. (출처)

    3. 전자 메일 주소 확인

    /[A-Z0-9._%+-]+@[A-Z0-9-]+.+.[A-Z]2,4/igm

    개발자를위한 가장 일반적인 작업 중 하나는 문자열이 전자 메일 주소의 스타일로 서식이 지정되어 있는지 확인하는 것입니다. 이 작업을 수행하는 데는 여러 가지 변형이 있으므로이 SitePoint 링크는 문자열에 대한 전자 메일 구문을 확인하기위한 두 가지 코드 조각을 제공합니다. (출처)

    4. IPv4 주소

    /\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.)3 (? : 25 [0-5] | 2 [0-4] [0-9] | [01]? [0-9] [0-9]?) \ b /

    전자 메일 주소와 마찬가지로 인터넷에 액세스하는 특정 컴퓨터를 식별하는 데 사용되는 일반적인 IP 주소입니다. 이 정규 표현식은 문자열을 검사하여 IPv4 주소 구문을 따르는 지 확인합니다. (출처)

    5. IPv6 주소

    ([0-9a-fA-F] 1,4 :) 7-9 [0-9a-fA-F] 1,4 | ([0-9a-fA-F] 1 (0-9a-fA-F) 1,4 :) 1,9 : [0-9a-fA-F] 1,4 | ([0-9a-fA-F] 1,4) 1,2 | ([0-9a ([0-9a-fA-F] 1,4) 1,3 | ([0-9a-fA-F] 0-9a-fA-F] 1,4) 1,4 | ([0-9a-fA-F] 1,4 : (0-9a-fA-F] 1,4) 1,5,9 | [0-9a-fA-F] 1,4 -9A-fA-F] 1,4) 1,6) : (([0-9a-fA-F] 1,4) 1,7 | :) | fe80 : (0-9a-fA-F] 0,4) 0,4 % [0-9a-zA-Z] 1, | :( ffff (: 0 1,4) 0,1 :) 0,1 (25 [0-5] | (2 [0-4] | 1 0,1 [0-9]) 0,1 [0-9 ]). 3,3 (25 [0-5] | (2 [0-4] | 1 0,1 [0-9]) 0,1 [0-9]) | ([0-9a-fA-F] 1,4 :) 1,4 : ((25 [0-5] | (2 [0-4] | 1 0,1 [0-9 ]) 0,1 [0-9]). 3,3 (25 [0-5] | 2 [0-4] | 1 0,1 [0-9])  0,1 [0-9]))

    또는이 고급 고급 스 니펫을 사용하여 최신 IPv6 구문에 대한 주소를 확인할 수도 있습니다. 그 차이는 개발 중에도 중요하지 않지만 사소합니다. (출처)

    6. 천개의 분리기

    / \ d 1,3 (? = (\ d 3) + (?! \ d)) / g

    전통적인 번호 매기기 시스템에서는 큰 숫자의 세 번째 자리마다 쉼표, 마침표 또는 다른 표시가 필요합니다. 이 정규식 코드는 임의의 숫자에서 작동하며 수천, 수백만 등으로 구분되는 모든 세 번째 숫자에 대해 선택한 표시를 적용합니다 (소스).

    7. HTTP를 하이퍼 링크 앞에 추가하십시오.

    if (! s.match (/ ^ [a-zA-Z] + : \ / \ //)) s = 'http : //'+ s; 

    JavaScript, Ruby 또는 PHP에서 작업하는 경우이 정규식은 매우 유용합니다. URL 문자열에 HTTP / HTTPS 접두사가 있는지 확인하고 그렇지 않은 경우 앞에 추가합니다. (출처)

    8. URL에서 도메인 가져 오기

    ////?

    모든 웹 사이트 도메인에는 초기 프로토콜 (HTTP 또는 HTTPS)과 종종 하위 도메인과 추가 페이지 경로가 포함됩니다. 이 스 니펫을 사용하여 모든 내용을 잘라내어 추가 프릴 없이도 도메인 이름 만 반환 할 수 있습니다. (SourceL

    9. 단어 수로 키워드 정렬

    ^ [^ \ s] * $는 정확하게 1 단어 키워드 ^ [^ \ s] * \ s [^ \ s] * $와 정확히 일치합니다 ^ [^ \ s] * \ s [^ \ s] * 2 단어 이상 (2 개 이상) ^ ([^ \ s] * \ s) 2 [^ \ s] * $의 키워드와 정확히 일치하는 3 단어 키워드 ^ ([^ \ s] * \ s) ) 4 [^ \ s] * $는 5 단어 이상의 키워드 (longtail)와 일치합니다.

    Google 애널리틱스 및 웹 마스터 도구 사용자는이 정규 표현식을 정말로 즐깁니다. 검색에 사용 된 단어의 수에 따라 키워드를 정렬하고 구성 할 수 있습니다..

    수치 적으로 (즉, 5 단어 만) 또는 여러 단어 (즉, 2 단어 이상)와 일치 할 수 있습니다. 분석 데이터를 정렬 할 때이 방법은 강력한 표현입니다. (출처)

    10. PHP에서 유효한 Base64 문자열 찾기

    ([A-Za-z0-9 + /] 4) * ([A-Za-z0-9 + /] 3 = | [A-Za-z0-9 + /] 2 ==)?) 1 \ '\) \) \;

    PHP 개발자라면 Base64로 인코딩 된 바이너리 객체를 찾는 코드를 파싱해야 할 수도 있습니다. 이 스 니펫은 모든 PHP 코드에 적용될 수 있으며 기존의 Base64 문자열을 검사합니다. (출처)

    11. 유효한 전화 번호

    (\) \ d 2,3) \)? [-.]? \ d \ d \ d [-.]? \ d \ d \ d \ d $

    짧고, 달콤하고, 요점. 이 정규식 코드는 주로 미국식 전화 번호를 기반으로하는 기존 전화 번호 구문의 유효성을 검사합니다..

    이것은 꽤 복잡한 주제로 바뀔 수 있으므로 더 자세한 답변을 보려면이 Stack 스레드를 감추는 것이 좋습니다. (출처)

    12. 선행 및 후행 공백

    ^ [\ s] + | [\ s] + $

    이 코드 스 니펫을 사용하여 문자열에서 선행 / 후행 공백을 제거하십시오. 큰 문제는 아니지만 때로는 데이터베이스에서 가져 오거나 다른 문서 인코딩에 적용 할 때 출력에 영향을 줄 수 있습니다. (출처)

    13. 이미지 소스 당겨)

    \< *[img][^\>] * [src] * = * [\ "\ '] 0,1 ([^ \"\'\>] *)

    어떤 이유로 이미지 소스를 HTML에서 바로 꺼내야하는 경우이 코드 스 니펫이 완벽한 솔루션입니다. 백엔드에서 원활하게 실행될 수 있지만 frontend JS 개발자는 프론트 엔드에 대한 jQuery의 .attr () 메소드에 의존해야합니다. (출처)

    14. DD / MM / YYYY 형식으로 날짜 유효성 검사

    (θ : 29 | 30) (\ / | - (1 : 0) (α : 1 [6-9] | [2-9] \ d) (α : 0? [1,3-9] | 1 [0-2] 0? 2 \ 3 (? :(? :( ?: 1 [6-9] | [2-9] \ d) ) (α : 0 [48] | [26]) | (α : 16 ° | [26]) 00)) )) () :( ?: 0? [1-9] | 1 \ d | 2 [0-8]) (? :( 0? [1-9])) (α : 1 [6-9] | [2-9] \ d)? \ d 2) $ (α : 1 [0-2]

    날짜는 텍스트 + 숫자로 표시되거나 다른 형식의 숫자로 표시 될 수 있으므로 까다 롭습니다. PHP는 환상적인 날짜 함수를 가지고 있지만, 원시 문자열을 가져올 때 이것이 항상 최상의 선택이되는 것은 아닙니다. 대신이 특정 날짜 구문에 대해 만들어진이 정규 표현식을 사용하십시오. (출처)

    15. YouTube 동영상 ID 일치

    /http:\/\/(?:youtu\.be\/|(?:[]]2,3\.)?youtube\co.¥/watch(?:\?|#\! )v =) ([\ w -] 11). * / gi

    YouTube는 작동하기 때문에 수년간 동일한 URL 구조를 유지했습니다. 또한 웹에서 가장 인기있는 동영상 공유 사이트이기 때문에 YouTube 동영상이 트래픽을 가장 많이 발생시키는 경향이 있습니다.

    URL에서 YouTube 동영상 ID를 추출해야하는 경우이 정규식 코드는 완벽하며 모든 YouTube URL 구조 변형에 완벽하게 작동해야합니다. (출처)

    16. 유효한 ISBN

    / \ b (? : ISBN (? ::?))? ((? : 97 [89])? \ d 9 [\ dx]) \ b / i

    인쇄 된 서적은 ISBN이라는 번호 체계를 따릅니다. ISBN-10과 ISBN-13 사이의 차이점을 고려하면 다소 까다로울 수 있습니다..

    그러나이 놀라운 스 니펫을 사용하면 ISBN 번호를 확인하고 ISBN10 또는 13인지 확인할 수 있습니다. 모든 코드는 PHP로 작성되어 있으므로 웹 개발자에게는이 코드가 매우 유용합니다. (출처)

    17. 우편 번호 확인

    ^ \ d 5 (? : [- \ s] \ d 4)? $

    이 스 니펫의 제작자는 무료로 작품을 발표했을뿐만 아니라 시간을내어 설명도했습니다. 이 스 니펫은 일반적인 5 자리 우편 번호 또는 9 자리 버전의 더 긴 길이의 우편 번호와 일치하는지 여부에 관계없이 유용합니다.

    이것은 주로 미국 우편 번호 시스템을위한 것이므로 다른 국가의 조정이 필요할 수 있음을 명심하십시오. (출처)

    18. 유효한 트위터 사용자 이름

    / @ ([A-Za-z0-9] 1,15) /

    다음은 문자열에서 발견 된 트위터 사용자 이름과 비교하기위한 아주 작은 코드 스 니펫입니다. 그것은 @언급하다 트윗 (또는 트윗)의 내용을 자동으로 스캔하는 데 적합한 구문입니다. (출처)

    19. 신용 카드 번호

    (θ : [0-9] 3) | 5 [1-5] [0-9] 14 | 6 (α : 0-9] [0-9]) [0-9] 12 | 3 [47] [0-9] 13 | 3 (? : 0 [0-5] | [68] [0-9 ]) [0-9] 11 | (? : 2131 | 1800 | 35 \ d 3) \ d 11) $

    신용 카드 번호를 확인하려면 종종 다른 곳에 온라인으로 호스팅되는 안전한 플랫폼이 필요합니다. 하지만 정규식은 일반적인 신용 카드 번호의 최소 요구 사항에 사용될 수 있습니다..

    개별 카드에 대한 더 포괄적 인 코드 목록은 여기에서 찾을 수 있습니다. 여기에는 Visa, MasterCard, Discover 및 기타 많은 서비스가 포함됩니다. (출처)

    20. CSS 속성 찾기

    ^ \ s * [a-zA-Z \ -] + \ s * [:] 1 \ s [a-zA-Z0-9 \ s.

    그것은 CSS를 통해 정규식을 실행하는 드문 수 있지만 그것은 엄청난 이상한 상황이 아니에요.

    이 코드 스 니펫은 일치하는 모든 CSS 속성과 값을 개별 선택기에서 가져 오는 데 사용할 수 있습니다. CSS의 청크를 보거나 중복 속성을 제거하기 위해 여러 가지 이유로 사용할 수 있습니다. (출처)

    21. HTML 주석 제거하기

    어떤 이유로 든 HTML 블록에서 모든 주석을 제거해야하는 경우이 코드는 사용할 정규식 코드입니다. 표현식과 함께 preg_replace를 사용하여 PHP 예제를 찾을 수 있습니다. (출처)

    22. 페이스 북 프로필 URL

    /( ?:: http : \\\)? (? (?:[\W w\-]*)/

    페이스 북은 엄청나게 인기가 많으며 다양한 URL 스키마를 거쳤습니다. 사용자로부터 프로필 URL을 가져 오는 상황에서 문자열을 구문 분석하고 문자열이 제대로 구성되었는지 확인하는 것이 좋습니다. 이 스 니펫은 정확히 수행 할 수 있으며 모든 FB 스타일 링크에 완벽합니다. (출처)

    23. Internet Explorer 버전 확인

    ^. * MSIE [5-8] (? : \. [0-9] +)? (?!. * Trident \ / [5-9] \. 0). * $

    Microsoft가 Edge로 이전 한 것은 만장일치가 아니며 많은 사람들이 여전히 고전적인 Internet Explorer에 의존합니다. 개발자는 종종 렌더링 엔진과의 불일치를 처리하기 위해 IE의 버전을 확인해야합니다..

    이 스 니펫은 JavaScript에서 Internet Explorer (5-11)의 버전이 사용되는 것을 기반으로 브라우저 에이전트를 테스트하는 데 사용될 수 있습니다. (출처)

    24. 추출물 가격

    /(\$[0-9,]+(\.[0-9]2)?)/

    가격은 소수점, 쉼표 및 통화 기호가 포함 된 다양한 형식으로 제공됩니다. 이 정규 표현식은 이러한 모든 형식을 검사하여 문자열에서 가격을 끌어낼 수 있습니다. (출처)

    25. 전자 메일 헤더 구문 분석

    /\b[A-Z0-9._%+-]+((A/Z0-9-]+\))[[Z-].2,6\b/i

    이 한 줄의 코드를 사용하면 전자 메일 헤더를 통해 구문 분석하여 추출 할 수 있습니다. “에” 헤더 정보. 함께 결합 된 여러 전자 메일과 함께 사용할 수 있습니다..

    이 작업을 위해 정규 표현식을 사용하지 않으려면 구문 분석 라이브러리를 사용하는 것이 좋습니다. (출처)

    26. 특정 파일 유형 일치

    /^(.*\.(?!(htm|html|class|js)$))?[^.]*$/i

    .xml, .html 및 .js와 같은 다양한 파일 형식을 처리 할 때 로컬로 파일을 검사하고 사용자가 업로드 한 파일을 검사하는 데 도움이 될 수 있습니다. 이 스 니펫은 파일 확장자를 가져와 필요한만큼 확장 할 수있는 일련의 유효한 확장자에서 유효한지 확인합니다. (출처)

    27. URL 문자열 매치

    /[-a-zA-Z0-9@:%_\+.-#?&//=]2,256\.[az]2.4\b(\/[-a-zA-Z0) -9 @ : % _ \ +. ~ #? & // =] *)? / gi

    이 스 니펫은 HTTPS 및 HTTP 문자열 모두에서 텍스트가 기존 TLD 도메인 구문과 일치하는지 확인하는 데 사용할 수 있습니다. JavaScript의 RegExp를 사용하여이 정규식을 간단히 구현할 수도 있습니다. (출처)

    28. rel =”nofollow” 링크

    (] () :) () :) () :) (implicit ( '| (? : www \.)?', $ follow_list) ') (href = "https? : //" [^ "] +)"((?!. * \ brel =) [^>] *) (? : [^>] *)>

    HTML 코드 일괄 작업을하는 경우 수동 작업을 반복적 인 작업에 적용하는 것은 끔찍할 수 있습니다. 정규 표현식은이 경우에 완벽하며 시간을 많이 절약 할 것입니다..

    이 스 니펫은 HTML 블록에서 모든 앵커 링크를 가져 와서 rel =”nofollow” 속성을 모든 요소에 적용합니다. 이 코드를 작성한 개발자는 PHP에서 실제 표현과 함께 원시 표현을 게시 할만큼 친절했습니다..

    29. 미디어 쿼리 매치

    / @ media ([^ ] +) \ ([\ s \ S] +?) \ s * / g

    CSS 미디어 쿼리를 매개 변수와 속성으로 나누십시오. 이렇게하면 코드가 작동하는 방식에보다 직접적인 초점을 두어 외부 CSS를보다 명확한 방식으로 분석하는 데 도움이됩니다. (출처)

    30. Google 검색 구문

    /([+-]?????????????|||||++-] 1 [^] *)) / g

    Google의 상표 구문을 사용하여 검색 가능한 텍스트를 조작하기위한 고유 한 정규식 코드를 작성할 수 있습니다. 더하기 기호 (+)는 추가 키워드를 나타내며 빼기 기호 (-)는 무시하고 결과에서 제거해야하는 단어를 나타냅니다..

    다소 복잡한 스 니펫이지만 적절하게 사용하면 자체 검색 알고리즘을 빌드하기위한 기반을 제공 할 수 있습니다. (출처)

    마무리

    Mastering regex에 대한 길은 길지만 길게 붙어 있다면 보람이 있습니다. 전형적인 정규 표현식 도구 외에도 반복 학습이 가장 좋은 방법입니다. 정규 표현식 스 니펫에 의존하는 웹 애플리케이션을 구축하여 실제로 작동하는 웹 애플리케이션에서 어떻게 작동하는지 알아보십시오. 다른 스 니펫이 있으면 아래의 댓글 영역에 게시 할 수 있습니다..

    지금 읽기 :

    모든 디자이너가 가져야 할 50 개의 유용한 CSS 스 니펫