正则表达式总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、正则表达式的定义方法
在JavaScript中,正则表达式是由一个RegExp对象表示的,利用RegExp对象来完成有关正则表达式的操作和功能。
正则表达式的定义共有2种方式:
(1)显式定义;
(2)隐式定义;
1、显式定义
所谓的“显式”就是让大家一眼就看出这就是正则表达式的定义,足够明显。
显式定义必须是使用new关键词来定义。
语法:
var 变量名 = new RegExp("正则表达式模式");
说明:
显式定义的正则表达式必须要使用双引号括起来,这里要注意字符串的转义。
2、隐式定义
所谓的“隐式”指的是有点阴阴湿湿,没那么明显,大家可能一眼没有看出这是正则表达式的定义。
语法:
var 变量名 = /正则表达式模式/
说明:
隐式定义的正则表达式开头和结尾都必须是斜杠“/”。记得使用隐式定义的正则表达式是不需要使用双引号括起来的,这一点跟显式定义的正则表达式不一样!
隐式定义是最常用的方式,建议大家以后都使用这种方式定义正则表达式,代码量少并且方便。
举例:
varmyregex = new ReExp("[0-9]");
上面语句等价于下面:
varmyregex = /[0-9]/;
二、test()方法
在JavaScript中,可以使用RegExp对象的test()方法来指出被查出的字符串中是否匹配正则表达式模式。
语法:
regex.test(str)
说明:
regex为必选项,表示正则表达式模式。
str为必选项,表示字符串。
该方法返回一个boolean值。也就是说,test()方法检查字符串str是否符合正则表达式模式rgexp,如果符合,则返回true;如果不符合,则返回false。
怎么更好的理解test()方法呢?举个例子,验证邮政编码的正则表达式模式为“\d{6}”。“\d{6}”表示6个字符都是数字,如果某一个字符串符合“6个字符都是数字”这种模式,那么test()方法就返回true,如果不符合,则返回false。
例如字符串“510632”就符合正则表达式模式“\d{6}”。而字符串“abc123”或“lvyestudy”就不符合正则表达式模式“\d{6}”,因为“abc123”虽然是6个字符,但是不符合所有字符都是数字。而“lvyestudy”不符合得原因有2点:①字符超过6个字符;②字符都不是数字。
代码示例:
varstr1="710021";
varstr2="lvyestudy";
//定义正则表达式
varmyregex = /\d{6}/;
//判断字符串str1是否匹配正则表达式myregex
if(myregex.test(str1))
{
document.write("'710021'是正确的邮政编码"+"
");
}
else
{
document.write("'710021'不是正确的邮政编码"+"
");
}
//判断字符串str2是否匹配正则表达式myregex
if(myregex.test(str2))
{
document.write("'goodstudy'是正确的邮政编码");
}
else
{
document.write("'goodstudy'不是正确的邮政编码");
}
三、常用元字符
在正则表达式中,包括2种字符:
(1)普通字符;
(2)特殊字符(元字符);
普通字符就是a~z、0~9这类常见的字符。其中特殊字符又称为“元字符”。元字符之所以叫特殊字符,就是它的特点跟普通字符不一样。例如邮政编码中,我们限定只能输入6个数字,那“数字”这个概念怎么理解呢?这个时候我们就用到了元字符\d来代替。
正则表达式常用的元字符如下:
1、举例1
0\d{2}-\d{8}
分析:
其实上面这个正则表达式匹配的是中国的电话号码,以0开头,然后是两个数字,然后是一个连字号“-”,最后是8个数字。\d{2}表示数字重复2次,\d{8}表示数字重复8次。记住,\d匹配是“数字”,很常用。{2}、{8}这些是限定符的内容。
2、举例2
varstr="020-*******";
//定义正则表达式
varmyregex = /0\d{2}-\d{8}/;
//判断字符串str是否匹配正则表达式myregex
if(myregex.test(str))
{
alert("匹配");
}
else
{
alert("不匹配");
}
3、举例3
varstr="
//定义正则表达式
varmyregex = /
//判断字符串str是否匹配正则表达式myregex
if(myregex.test(str))
{
alert("匹配");
}
else
{