객체 지향 JavaScript — RegExp

https://www.amazon.com/John-Au-Yeung/e/B08FT5NT62에서 Amazon에서 내 책을 확인하십시오.

지금 http://jauyeung.net/subscribe/에서 내 이메일 목록을 구독하십시오.

JavaScript는 부분적으로 객체 지향 언어입니다.

JavaScript를 배우려면 JavaScript의 객체 지향 부분을 배워야 합니다.

이 기사에서는 RegExp 객체를 살펴보겠습니다.

정규 표현식


RegExp 생성자를 사용하면 텍스트를 검색하고 조작할 수 있습니다.

JavaScript는 정규식을 정의하기 위해 Perl 5 구문을 사용합니다.

정규식은 텍스트를 사용하고 일치시키는 패턴으로 구성됩니다.

패턴 사용 방법에 대한 추가 지침을 제공하기 위해 선택적으로 0개 이상의 수정자를 포함할 수 있습니다.

예를 들어 다음과 같이 작성하여 RegExp 생성자를 사용할 수 있습니다.

const re = new RegExp("c.*t");

ct 사이에 일부 문자가 있는 단어와 일치하는 정규식이 있습니다.
.는 모든 문자를 의미합니다.
*는 뒤에 오는 것보다 앞서는 것을 의미합니다.

정규식을 변경하기 위해 플래그라는 수정자를 추가할 수 있습니다.

일부 플래그는 다음과 같습니다.
  • g 글로벌.
  • i 대소문자 무시용
  • m 멀티라인용

  • 따라서 다음이 있는 경우:

    const re = new RegExp("c.*t", 'gmi');
    

    global 속성과 전역적으로 일치하는지 확인할 수 있습니다.

    따라서 re.globaltrue를 반환해야 합니다.

    속성을 설정할 수 없으므로 값을 할당해도 값이 변경되지 않습니다.

    RegExp 메서드


    RegExp 인스턴스에는 몇 가지 메서드가 있습니다.

    여기에는 testexec 메서드가 포함됩니다.
    test 문자열이 정규식 패턴과 일치하는지 확인합니다.

    그리고 exec는 정규식과 일치하는 문자열을 반환합니다.

    실행하여 test를 호출할 수 있습니다.

    /c.*t/.test("CoffeeScript");
    


    그러면 false  를 얻습니다.

    그러나 우리는 다음과 같이 부릅니다.

    /c.*t/i.test("CoffeeScript");
    


    대소문자를 구분하지 않기 때문에 true를 얻습니다.
    exec 로 전화하려면 다음과 같이 작성할 수 있습니다.

    /c.*t/i.exec("CoffeesScript")[0];
    


    그런 다음 우리는 다음을 얻습니다.

    "CoffeesScript"
    


    정규식을 인수로 받아들이는 문자열 메서드



    일부 문자열 메서드는 정규식을 인수로 받아들입니다.

    여기에는 다음이 포함됩니다.
  • match  — 일치하는 배열을 반환합니다
  • .
  • search  — 첫 번째 검색 위치를 반환합니다
  • .
  • replace  — 일치하는 텍스트를 다른 문자열로 대체
  • split  — 문자열을 요소 배열로 분할할 때 정규식을 허용합니다.

  • 정규식을 searchmatch  에 전달할 수 있습니다.

    예를 들어 다음과 같이 작성할 수 있습니다.

    'JavaScript'.match(/a/);
    


    그러면 ['a']  를 얻습니다.

    우리가 있다면”

    'JavaScript'.match(/a/g);
    


    그런 다음 우리는 다음을 얻습니다.

    ["a", "a"]
    


    우리가 쓰는 경우 :

    'JavaScript'.match(/J.*a/g);
    


    그러면 우리는 다음을 얻습니다.

    ["Java"]
    

    search로 전화하면  :

    'JavaScript'.search(/J.*a/g);
    


    그런 다음 일치하는 문자열의 위치인 0을 얻습니다.
    replace 메서드를 사용하면 일치하는 텍스트를 다른 문자열로 바꿀 수 있습니다.

    예를 들어 다음과 같이 작성하여 모든 소문자를 제거할 수 있습니다.

    'JavaScript'.replace(/[a-z]/g, '')
    


    그런 다음 우리는 다음을 얻습니다.

    "JS"
    

    $& 자리 표시자를 사용하여 일치 항목에 추가할 수도 있습니다.

    예를 들어 다음과 같이 작성할 수 있습니다.

    'JavaScript'.replace(/[A-Z]/g, '-$&')
    


    그런 다음 우리는 다음을 얻습니다.

    "-Java-Script"
    

    replace는 우리 방식대로 조작된 일치 항목을 반환하도록 하는 콜백을 받을 수 있습니다.

    예를 들어 다음과 같이 작성할 수 있습니다.

    'JavaScript'.replace(/[A-Z]/g, (match) => {
      return `-${match.toLowerCase()}`;
    })
    


    그런 다음 우리는 다음을 얻습니다.

    "-java-script"
    


    대문자를 소문자로 바꾸고 그 앞에 대시를 추가했습니다.

    콜백의 첫 번째 매개변수는 match.
    마지막은 검색 중인 문자열입니다.

    마지막으로 앞의 것은 match  의 위치입니다.

    그리고 나머지 매개변수에는 정규식 패턴의 그룹과 일치하는 문자열이 있습니다.
    split 메서드를 사용하면 문자열을 분할할 수 있습니다.

    [pattern to split by.

    예를 들어 다음과 같이 작성합니다.

    const csv = 'one, two,three ,four'.split(/s*,s*/);
    


    그런 다음 우리는 다음을 얻습니다.

    ["one", "two", "three", "four"]
    


    우리는 그것을 얻기 위해 공백으로 문자열을 나눕니다.

    결론


    RegExp 생성자를 사용하면 문자열에서 패턴을 찾아 작업할 수 있습니다.

    좋은 웹페이지 즐겨찾기