>웹 프론트엔드 >JS 튜토리얼 >JavaScript 정규식_javascript 기술의 RegExp 개체에 대한 자세한 설명

JavaScript 정규식_javascript 기술의 RegExp 개체에 대한 자세한 설명

WBOY
WBOY원래의
2016-05-16 15:26:061377검색

1. RegExp 개체 개요
RegExp 개체는 정규식을 나타냅니다. RegExp는 정규식의 약어이며 문자열에 대한 패턴 일치를 수행하는 강력한 도구입니다. RegExp 개체는 텍스트에서 검색할 내용을 지정하는 데 사용됩니다. 일부 텍스트를 검색할 때 패턴을 사용하여 검색하려는 내용을 설명합니다. RegExp는 이 패턴입니다. 간단한 패턴은 단일 문자일 수 있습니다. 더 복잡한 패턴은 더 많은 문자를 포함하고 구문 분석, 형식 확인, 교체 등에 사용될 수 있습니다.
정규식은 문자열 내 검색 위치, 검색할 문자 유형 등을 지정할 수 있습니다.
2. RexExp 객체 생성
정규식을 만드는 것은 문자열을 만드는 것과 유사합니다. 정규식을 만드는 방법에는 두 가지가 있습니다.
(1) 리터럴을 사용하여 RegExp 객체를 생성하기 위한 구문:
~                       (2) 새 키워드를 사용하여 RegExp 객체를 생성하는 구문:             new RegExp(패턴, 속성);

매개변수 설명: ​​​​ 1파라미터 패턴은 정규식 패턴이나 기타 정규식을 지정하는 문자열입니다. ​​​​ 2Parameter 속성은 "g", "i" 및 "m" 속성을 포함하는 선택적 패턴 문자열로, 각각 전역 일치, 대소문자 구분 없는 일치 및 여러 줄 일치를 지정하는 데 사용됩니다.
RegExp 개체는 검색 패턴을 저장하는 데 사용됩니다. new 키워드를 통해 RegExp 개체를 만듭니다. 다음 코드는 패턴이 "e"인 RegExp 개체를 생성합니다. 이 RegExp 개체를 사용하여 문자열을 검색할 때 문자 "e"가 검색됩니다.




위의 내용은 문자 그대로 생성할 수도 있는데, 이는 우리가 자주 사용하는 방법이기도 합니다.

<span style="font-size:18px;">var pattern=new RegExp("e"); 
var pattern=new RegExp("e",gi);//设置全局搜素不区分大小写</span> 


3. RegExp 객체 상세 분석
<span style="font-size:18px;">var pattern=/e/; 
var pattern=/e/gi;</span> 

(1)RegExp 개체 속성

위의 예에서 이러한 기본 예를 이미 살펴보았지만 몇 가지 간단한 예를 살펴보겠습니다.


(2)RegExp 개체 메서드
<span style="font-size:18px;">var pattern=/e/gim; 
document.write(pattern.global+" ");//输出:true。说明设置了全局模式 
document.write(pattern.ignoreCase+" ");//输出:true 
document.write(pattern.multiline+" ");//输出:true 
document.write(pattern.source+" ");//输出:e</span> 

1) test() 메소드 는 문자열에 지정된 값을 검색하고 반환 값은 true 또는 false입니다.



2)

exec() 메서드
는 문자열에서 지정된 값을 검색하고, 반환 값은 찾은 값입니다. 일치하는 항목이 없으면 null이 반환됩니다.
<span style="font-size:18px;">var pattern=/e/; 
var str="The best things in life are free"; 
document.write(pattern.test(str));//输出:true</span> 
예:


예:

          RegExp 개체에 두 번째 매개변수를 추가하여 검색을 설정합니다. 특정 문자의 모든 항목을 찾으려면 "g" 매개변수를 사용할 수 있습니다.
"g" 매개변수를 사용하면 exec()는 다음과 같이 작동합니다.
<span style="font-size:18px;">var pattern=/e/; 
var str="The best things in life are free"; 
document.write(pattern.exec(str));//输出:e</span> 


1첫 번째 "e"를 찾아 위치를 저장합니다.

2exec()를 다시 실행하면 저장된 위치에서 검색을 시작하고 다음 "e"를 찾아 해당 위치를 저장합니다.


  • 출력 결과는 다음과 같습니다: e e e e e e null
3)
compile() 메소드
<span style="font-size:18px;">var pattern=/e/g; 
var str="The best things in life are free"; 
do 
{ 
 var result=pattern.exec(str); 
 document.write(result+" "); 
} 
while(result!=null)</span> 
는 정규식을 변경하는 데 사용됩니다. compile()은 검색 모드를 변경할 수 있을 뿐만 아니라 두 번째 매개변수를 추가하거나 삭제할 수도 있습니다.



(3) 정규식을 지원하는 String 객체의 메소드
<span style="font-size:18px;">var pattern=/e/; 
var str="The best things in life are free"; 
document.write(pattern.test(str));//输出:true 
pattern.compile("d"); 
document.write(pattern.test(str));//输出:false</span> 

정규 표현식은 String 객체와 일정한 관계가 있으므로 String 객체의 일부 메소드를 정규 표현식에 사용할 수 있습니다.

(4)元字符是拥有特殊含义的字符:

由于这些使用广泛,我们只是举几个例子:

<span style="font-size:18px;">var pattern=/b.ue/;//点符号表示匹配除了换行符以外的任意字符。 
var str="blue"; 
document.write(pattern.test(str));//输出:true</span> 

(5)方括号用于查找某个范围的字符:

<span style="font-size:18px;">var pattern=/[a-z]oogle/;//[a-z]表示26个小写字母,任意一个都可以匹配 
var str="woogle"; 
document.write(pattren.test(str));//输出:true</span> 

(6)量词

<span style="font-size:18px;">var pattern=/go+gle/;//o*表示匹配至少一个0 
var str="google"; 
document.write(pattren.test(str));//输出:true</span> 

四、常用的正则表达式
主要的是看变量patttern模式字符串表示的正则表达式。其余的是一些JS的基本的东西,可以忽略。
(1)检查邮政编码

<span style="font-size:18px;">var pattern=/^[0-9]{6}$/;//必须是6位,并且都是是数字 
var str=prompt("请输入邮政编码:"); 
if(pattern.test(str)) 
{ 
 alert("您输入的是正确的邮政标号!"); 
} 
else 
{ 
 alert("您输入的是错误的邮政标号!"); 
}</span> 

输入一些数据运行的结果为:
输入:056500

 输入:123

(2)简单电子邮件地址验证

<span style="font-size:18px;">var pattern=/^([\w\.\-]+)@([\w\-]+)\.([a-zA-Z]{2,4})$/; 
var str=prompt("请输入邮箱名称:"); 
if(pattern.test(str)) 
{ 
 alert("您输入的是正确的邮箱名称!"); 
} 
else 
{ 
 alert("您输入的是错误的邮箱名称!"); 
}</span> 

(3)检查上传文件压缩包

<span style="font-size:18px;">var pattern=/[\w]+\.zip|rar|gz/;//\w表示所有数字和字母以及下划线 
var str=prompt("请输入压缩包的名称:"); 
if(pattern.test(str)) 
{ 
 alert("您输入的是正确的压缩包名称!"); 
} 
else 
{ 
 alert("您输入的是错误的压缩包名称!"); 
}</span> 

(4)检查手机号

<span style="font-size:18px;">var pattern=/^[1][0-9]{10}$/; 
var str=prompt("请输入手机号码:"); 
if(pattern.test(str)) 
{ 
 alert("您输入的是正确的手机号码!"); 
} 
else 
{ 
 alert("您输入的是错误的手机号码!"); 
}</span> 

下面三个输出的结果就不再一一展示,只要写好模式正则表达式就可以检验输入的数据是否正确。由于刚刚接触正则表达式,可能有不正确的地方,自己会进行完善和修正,希望对大家的学习有所帮助。

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