《JavaScript正则表达式.ppt》由会员分享,可在线阅读,更多相关《JavaScript正则表达式.ppt(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、JavaScript正则表达式1目标了解正则表达式概念掌握正则表达式的语法熟练掌握正则表达式在JavaScript中的应用2正则历史沃伦和沃尔特这两位神经生理学家研究出一种用来描述神经网络的数学方式。1956年美国数学家斯蒂芬在沃尔特和沃伦早期工作的基础上,发表了一篇标题为:神经网络事件的表示法的论文,引入了正则表达式的概念。正则表达式就是用来描述被称为“正则集代数”的表达式,因此采用“正则表达式”这个术语。3为什么要使用正则表达式正则表达式可以:n测试字符串的某个模式,即数据有效性验证n实现按照某种规则替换文本n根据模式匹配从字符串中提取一个子字符串4正则语法下表是元字符及其在正则表达式上下
2、文中的行为的一个完整列表:下表是元字符及其在正则表达式上下文中的行为的一个完整列表:字符字符描述描述转义转义匹配输入字符串的开始位置匹配输入字符串的开始位置$匹配输入字符串的结束位置匹配输入字符串的结束位置*匹配前面的子表达式零次或多次。例如,匹配前面的子表达式零次或多次。例如,zo*+匹配前面的子表达式一次或多次。例如,匹配前面的子表达式一次或多次。例如,zo+?匹配前面的子表达式零次或一次。例如,匹配前面的子表达式零次或一次。例如,do?nn是一个非负整数。匹配确定的是一个非负整数。匹配确定的n次。例如,次。例如,o2n,n是一个非负整数。至少匹配是一个非负整数。至少匹配n次。例如,次。例
3、如,o2,n,mm m 和和n n 均为非负整数,其中均为非负整数,其中n n=m m 。最少匹配。最少匹配 n n 次且最多匹配次且最多匹配 m m 次。次。例如:例如:o1,3 o1,3 x|y匹配匹配 x x 或或 y y。例如,。例如,z|food z|food xyzxyz 字符集合。匹配所包含的任意一个字符。例如:字符集合。匹配所包含的任意一个字符。例如:abcabcxyzxyz 负值字符集合。匹配未包含的任意字符。例如:负值字符集合。匹配未包含的任意字符。例如:abc abc 5正则语法字符字符描述描述 a-za-z 字符范围。匹配指定范围内的任意字符字符范围。匹配指定范围内的任
4、意字符 a-a-z z 负值字符范围。匹配任何不在指定范围内的任意字符负值字符范围。匹配任何不在指定范围内的任意字符 b b 匹配一个单词边界。例如匹配一个单词边界。例如:erb:erb 可以匹配可以匹配neverneverB B 匹配非单词边界。匹配非单词边界。d d 匹配一个数字字符。等价于匹配一个数字字符。等价于 0-9 0-9。D D 匹配一个非数字字符。等价于匹配一个非数字字符。等价于 0-9 0-9 n n 匹配一个换行符匹配一个换行符 r r 匹配一个回车符匹配一个回车符 s s 匹配任何空白字符匹配任何空白字符 S S 匹配任何非空白字符匹配任何非空白字符 .匹配除匹配除 n
5、n 之外的任何单个字符之外的任何单个字符6正则表达式对象的方法正则表达式对象的方法方法方法含义含义exec在字符串中运行查找,并返回包含该查找结果的一个数组在字符串中运行查找,并返回包含该查找结果的一个数组test返回一个返回一个 Boolean Boolean 值,被查找的字符串中是否存在某模式值,被查找的字符串中是否存在某模式search 返回与正则表达式查找内容匹配的第一个子字符串的位置返回与正则表达式查找内容匹配的第一个子字符串的位置split 按特定字符串将原字符串拆分成数组按特定字符串将原字符串拆分成数组match在字符串中执行查找,并将包含查找的结果作为数组返回在字符串中执行查找
6、,并将包含查找的结果作为数组返回 7正则在JS中的应用在字符串中执行查找在字符串中执行查找exec方法:方法:Stringexec(Stringsource)例如:例如:functionisDigit(s)varreg=/0-91,20$/;varresult=reg.exec(s);/如果格式正确,返回原字符串,否则返回如果格式正确,返回原字符串,否则返回nullalert(result);8正则在JS中的应用在字符串中执行查找在字符串中执行查找 match match 方法:方法:String match(String reg)String match(String reg)例如:例如:f
7、unction matchDemo(String source)function matchDemo(String source)var reg=/a-z/;var reg=/a-z/;var result=source.match(reg);var result=source.match(reg);alert(result);alert(result);9正则在JS中的应用执行模式判定执行模式判定test方法:方法:Booleantest(Stringsource)例如:例如:functionisDigit(s)varreg=/0-91,20$/;varflag=reg.test(s);/如
8、果格式正确,返回如果格式正确,返回true,否则返回,否则返回falseif(flag)returntrue;elsereturnfalse;10正则在JS中的应用执行字符串位置查询search方法:intsearch(Stringreg)例如:functionseachString()varr,re;/声明变量vars=TheraininSpainfallsmainlyintheplain.;re=/falls/;/创建正则表达式模式r=s.search(re);/查找字符串alert(r);/返回 int 结果表示出现位置11正则在JS中的应用执行字符串分割split方法:Stringsp
9、lit(Stringreg)例如:functionsplitString()varr,reg;/声明变量reg=/abc/;/创建正则表达式模式vars=“IcansaymyabcIcansaymyabcIcan;r=s.split(reg);/分割字符串for(varpinr)/返回返回 String String 数组数组alert(rp);12常用正则实例常用正则实例验证验证Email地址地址functiontest_email(strEmail)varmyReg=/_a-z0-9+(_a-z0-9+.)+a-z0-92,3$/;if(myReg.test(strEmail)return
10、true;elsereturnfalse;13常用正则实例常用正则实例验证电话号码functionisTel(s)varpatrn=/(d3-)?d8|(d4-)(d7,8)$/;if(!patrn.test(s)returnfalsereturntruep校验手机号码functionisMobil(s)varpatrn=/13,5d9$/;if(!patrn.test(s)returnfalsereturntrue14常用正则实例常用正则实例验证邮政编码functionisPostalCode(s)varpatrn=/d6$/;if(!patrn.test(s)returnfalse;ret
11、urntrue;15常用正则实例常用正则实例验证日期functiontest_email(strDate)varReg=/(16-9|2-9d)d2)-(0?13578|102)-(0?1-9|12d|301)|(16-9|2-9d)d2)-(0?13456789|1012)-(0?1-9|12d|30)|(16-9|2-9d)d2)-0?2-(0?1-9|1d|20-8)|(16-9|2-9d)(048|2468048|1357926)|(16|2468048|357926)00)-0?2-29-)$/;if(Reg.test(strDate)returntrue;returnfalse;16总结正则表达式语法简洁,实现简单正则表达式使得JavaScript的客户端验证更加容易正则表达式还能够应用在C#和JAVA中,有着非常广阔的应用前景17