摘 要:本文简述了正则表达式的定义,使用,语法规则,为网页系统的开发及应用奠定一定的基础。
关键词:正则表达式 匹配 查找
一、正则表达式简介
正则表达式(Regular Expression,简称regexp)。是一种描述字符串结构的语法规则。对用户名和密码进行验证。用户名、密码、电子邮箱、手机号码、身份证号码、生日、邮政编码、固定电话,这些特殊字符串的验证在网页注册或者登陆时常会用到。利用正则表达式可以化简验证。正则表达式描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串,将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
本文以查找为例,若在大量的文本中找出符合某个特征的字符串(如手机号码),就将这个特征按照正则表达式的语法写出来,形成一个计算机程序识别的模式(Pattern),然后计算机程序就会根据这个模式到文本中进行匹配,找出符合规则的字符串。
二、定义正则表达式
1.普通方式varreg=/表达式/附加参数
表达式:一个字符串代表了某种规则,可以使用特殊符号代表特殊的规则。
字符类别
附加参数:用来扩展表达式的含义
字符类别
g: 全局匹配;i: 不区分大小写匹配;m: 多行匹配。
2.构造函数方式varreg=new RegExp(“表达式”,“附加参数”)
例子:var reg=/special/;var reg=/special/g;var reg=new RegExp(“special”);var reg=new RegExp(“special”,“g”);
知识点2:正则表达式的两种模式
(1)简单模式。var reg=/china/;var reg=/abc8/。
(2)复合模式。var reg1=/^\w+$/;var reg2=/^\w+@\w+.[a-zA-Z]{2,3}(.[a-zA-Z]{2,3})?$/。reg1表示一个数字、下划线或字母字符出现一次或多次。reg2表示一个电子邮箱的有效格式。
三、如何使用正则
在开发中,经常需要根据正则匹配模式完成对指定字符串的搜索和匹配。最常用的test、exec、match、search、replace、split6个方法
1.test检查指定的字符串是否存在。var data=”123123”;varreCat=/123/gi;alert(reCat.test(data)); //true
检查字符是否存在,g表示全局匹配,i表示不区分大小写。
2. exec返回查询值。exec( )方法用于在目标字符串中搜索匹配,一次仅返回一个匹配结果。例如:在指定字符串str中搜索abc.varstr=’AbC123abc456’;varreg=/abc/i;//定义正则对象。reg.exec(str);//匹配结果:[“AbC”, index: 0, input:”AbC123abc456”]。String对象中的match( )方法除了可在字符串内检索指定的值外,还可以在目标字符串中根据正则匹配出所有符合要求的内容,匹配成功后将其保存到数组中,匹配失败则返回false。
var data=”123123,213,12312,312,3,Cat,cat,dsfsdfs,”;varreCat=/cat/i;alert(reCat.exec(data));//Cat
3.match得到查询数组。var data=”123123,213,12312,312,3,Cat,cat,dsfsdfs,”;varreCat=/cat/gi;vararrMactches=data.match(reCat)
for (var i=0;i <arrMactches.length; i++)
{alert(arrMactches[i])//Cat cat}
varstr=”It’s is the shorthand of it is”;var reg1=/it/gi;str.match(reg1);// 匹配结果:(2) [“It”,”it”]
var reg2=/^it/gi;str.match(reg2);//匹配结果:[“It”]
var reg3=/s/gi;str.match(reg3);//匹配结果:(4) [“s”, “s”,”s”,”s”]
var reg4=/s$/gi;str.match(reg4);//匹配结果:[“s”]
4.search返回搜索位置类似于indexof。 var data=”123123,213,12312,312,3,Cat,cat,dsfsdfs,”;varreCat=/cat/gi;alert(data.search(reCat));//23
5.replace替换字符,利用正则替换。var data=”123123,213,12312,312,3,Cat,cat,dsfsdfs,”;varreCat=/cat/gi;alert(data.replace(reCat,”libinqq”));
6.split利用正则分割数组。var data=”Mery,Tom,Kitty”;varreCat=/,/;vararrdata=data.split(reCat);for (var i=0; i<arrdata.length; i++)
{alert(arrdata[i]);}
结果是Mery Tom Kitty。
参考文献
[1]张晓雷 网页设计与制作教程[M].北京,电子工业出版社,2014。
[2]缪亮 网页设计基础与上机指导[M].北京,清华大学出版社,2012。
[3]王津涛 网页设计与开发[M].北京,清华大学出版社,2012。
论文作者:庞新法
论文发表刊物:《教育学文摘》2019年10月总第316期
论文发表时间:2019/9/17
标签:字符串论文; 正则论文; 正则表达式论文; 模式论文; 表达式论文; 字符论文; 规则论文; 《教育学文摘》2019年10月总第316期论文;