>웹 프론트엔드 >프런트엔드 Q&A >JavaScript가 정규식을 사용하는 방법

JavaScript가 정규식을 사용하는 방법

PHPz
PHPz원래의
2023-04-25 17:31:111035검색

정규식은 문자열을 일치시키는 데 사용되는 패턴으로 문자열 확인, 검색, 바꾸기 등에 사용할 수 있습니다. JavaScript에는 정규식 지원 기능이 내장되어 있습니다. 이 기사에서는 JavaScript에서 정규식을 사용하는 방법을 소개합니다.

정규식은 복잡해서 처음 접하는 경우 혼란스러울 수 있습니다. 그러나 기본 구문과 일반적인 기능을 이해한다면 이를 사용하여 복잡한 문자열 일치 및 대체 문제를 해결할 수 있습니다.

1. 정규식의 기본 구문

정규식은 일련의 문자와 메타 문자로 구성되며, 메타 문자는 일치 규칙을 지정하는 데 사용됩니다. 다음은 가장 기본적인 메타 문자 중 일부입니다.

  1. 문자 및 숫자: 모든 문자와 숫자를 정규식에 직접 입력하여 해당 문자와 ​​일치시킬 수 있습니다. 예를 들어 정규식 /test/는 문자열 "test"와 정확히 일치할 수 있습니다.
  2. 메타문자: 메타문자는 특별한 의미를 지닌 특수문자입니다. 예를 들어, 정규식에서 "."는 모든 문자를 나타내고, "^"는 문자열의 시작을 나타내고, "$"는 문자열의 끝을 나타냅니다.
  3. 문자 집합: 문자 집합의 모든 문자를 일치시키는 데 사용됩니다. 예를 들어 정규식 /[ab]/는 "a" 또는 "b"와 일치합니다.
  4. 정량자: 일치하는 반복 횟수 또는 범위를 지정하는 데 사용됩니다. 예를 들어, 정규식 /a+/는 임의 개수의 "a" 문자(최소 1개)와 일치할 수 있으며, "a{3}"는 세 개의 연속된 "a" 문자와 일치함을 의미합니다.

다음은 몇 가지 간단한 정규식 예입니다.

expression 내용 일치
/test/ test
/.at/ cat, hat, sat
/[bc]at/ bat, cat
/[0-9 ]*/ 1234567890

2. JavaScript의 정규식

JavaScript에는 정규식에 대한 지원이 내장되어 있습니다. RegExp 개체를 사용하여 정규식 개체를 만들거나 String 개체의 일반 메서드를 사용하여 문자열 일치를 수행할 수 있습니다.

  1. 정규식 개체 만들기

RegExp 개체의 생성자를 사용하여 정규식 개체를 만들 수 있습니다. 생성자는 두 개의 매개 변수를 허용합니다. 하나는 일치에 사용되는 문자열 패턴이고 다른 하나는 선택적 플래그 문자입니다. 끈.

예:

var 패턴 = /d+/g; //정규식 객체를 생성하려면 리터럴 패턴을 사용하세요.
var Pattern2 = new RegExp("d+", "g") //생성자를 사용하여 정규식 개체

위의 예에서 정규식 "/d+/g"와 문자열 "d+"는 동일하며 둘 다 하나 이상의 숫자가 일치함을 나타냅니다.

  1. 문자열 일치

JavaScript에서는 String 개체의 match(), search(), replacement(), Split() 메서드를 사용하여 문자열 일치를 구현할 수 있습니다.

match() 메소드: match() 메소드는 정규식과 일치하는 문자열 내용을 포함하는 배열을 반환합니다. 일치하는 항목이 없으면 null이 반환됩니다. 예:

var str = "hello world , hello JavaScript" ;
var 패턴 = /hello/;
var result = str.match(pattern);
console.log(result); // 출력 ["hello"]

search() 메서드: search() 이 메서드는 일치하는 문자열의 시작 위치 또는 일치하는 항목이 없으면 -1입니다. 예:

var str = "hello world, hello JavaScript"
var 패턴 = /world/;
var result = str .search(pattern);
console.log(result); // 출력 6

replace() 메서드: replacement() 메서드는 일치하는 텍스트 내용을 바꾸고 교체된 새 문자열을 반환하는 데 사용됩니다. 예:

var str = "hello world, hello JavaScript";
var 패턴 = /hello/;
var result = str.replace(pattern, "hi"); // 출력 " hi world, hi JavaScript"

split() 메서드: Split() 메서드는 분할 위치를 결정하기 위해 지정된 구분자 문자열 또는 정규식을 사용하여 문자열을 문자열 배열로 분할합니다. 예:

var str = "apple,banana,orange";

var Pattern = /[,]/;
var result = str.split(pattern);
console.log(result); // 출력 [" apple ", "banana", "orange"]

    문자열 확인
JavaScript에서는 RegExp 개체의 test() 메서드를 사용하여 문자열이 정규식을 준수하는지 확인할 수 있습니다. test()는 문자열이 정규식 요구 사항을 충족하는지 여부를 나타내는 true 또는 false를 반환합니다. 예:

var 패턴 = /d+/;

console.log(pattern.test("123")); // true 출력
console.log(pattern.test("1a23")) // true 출력

3. 정규식의 고급 응용

정규식에는 더 복잡한 문자열 일치 및 대체 기능을 수행할 수 있는 고급 용도가 많이 있습니다. 다음은 몇 가지 일반적인 고급 응용 프로그램입니다.

    그룹 일치
괄호를 사용하여 그룹을 나타냅니다(예: 정규식 /(d{3})-(d{3})-(d{4})/). "123-456-7890"과 유사한 전화번호 형식을 일치시킵니다. 여기서 세 그룹 (d{3}), (d{3}) 및 (d{4})는 지역 번호, 중앙부 및 지역 번호와 일치합니다. 전화번호와 접미사 번호입니다.

  1. 폭이 0인 어설션

너비가 0인 어설션은 문자가 아닌 문자열의 위치를 ​​일치시키는 것을 의미합니다. 예를 들어 정규식 /cat(?=dog)/는 "cat" 뒤에 "dog"가 오는 것과 일치하지만 "cat" 뒤에 "dog"가 오는 것은 일치하지 않습니다.

  1. 일치하는 결과 바꾸기

텍스트를 바꿀 때 $1, $2 등과 같은 자리 표시자를 사용하여 일치하는 결과의 첫 번째 그룹과 두 번째 그룹 등을 나타낼 수 있습니다. 예를 들어, 정규식 /(d{3})-(d{3})-(d{4})/ 및 "123-456-7890"을 "($1) $2-$3"로 대체하여 다음을 얻을 수 있습니다. 결과는 "(123) 456-7890"입니다.

4. 결론

정규식은 다양한 문자열 일치 및 교체 문제를 처리하는 데 사용하는 강력한 패턴 일치 도구입니다. JavaScript에서는 RegExp 개체와 String 개체의 일반 메서드를 사용하여 정규식 작업을 수행할 수 있습니다. 이 문서에서는 정규식의 기본 구문과 일반적인 응용 프로그램을 소개하고 고급 응용 프로그램의 몇 가지 예를 제공합니다. 이 글을 통해 독자들이 자바스크립트에서 정규 표현식의 사용을 이해할 수 있기를 바랍니다.

위 내용은 JavaScript가 정규식을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.