资源描述
JavaScript正则表达式教员:杨双虎,目标,了解正则表达式概念掌握正则表达式的语法熟练掌握正则表达式在JavaScript中的应用,正则历史,沃伦和沃尔特这两位神经生理学家研究出一种用来描述神经网络的数学方式。1956年美国数学家斯蒂芬在沃尔特和沃伦早期工作的基础上,发表了一篇标题为:神经网络事件的表示法的论文,引入了正则表达式的概念。正则表达式就是用来描述被称为“正则集代数”的表达式,因此采用“正则表达式”这个术语。,为什么要使用正则表达式,正则表达式可以:测试字符串的某个模式,即数据有效性验证实现按照某种规则替换文本根据模式匹配从字符串中提取一个子字符串,正则语法,下表是元字符及其在正则表达式上下文中的行为的一个完整列表:,下表是元字符及其在正则表达式上下文中的行为的一个完整列表:,正则语法,特殊字符,正则表达式对象的方法,正则在JS中的应用,在字符串中执行查找exec方法:exec(Stringsource)例如:functionisDigit(s)varreg=/0-91,20$/;varresult=reg.exec(s);/如果格式正确,返回原字符串,否则返回nullalert(result);,正则在JS中的应用,在字符串中执行查找match方法:match(reg)例如:functionmatchDemo(source)varreg=/a-z/;varresult=source.match(reg);alert(result);/注意与exec的区别,正则在JS中的应用,执行模式判定test方法:Booleantest(source)例如:functionisDigit(s)varreg=/0-91,20$/;varflag=reg.test(s);/如果格式正确,返回true,否则返回falseif(flag)returntrue;elsereturnfalse;,正则在JS中的应用,执行字符串位置查询search方法:intsearch(Stringreg)例如:functionseachString()varr,re;/声明变量vars=TheraininSpainfallsmainlyintheplain.;re=/falls/;/创建正则表达式模式r=s.search(re);/查找字符串alert(r);/返回int结果表示出现位置,正则在JS中的应用,执行字符串分割split方法:Stringsplit(Stringreg)例如:functionsplitString()varr,reg;/声明变量reg=/abc/;/创建正则表达式模式vars=“IcansaymyabcIcansaymyabcIcan;r=s.split(reg);/分割字符串for(varpinr)/返回String数组alert(rp);,常用正则实例,验证Email地址functiontest_email(strEmail)varmyReg=/_a-z0-9+(_a-z0-9+.)+a-z0-92,3$/;if(myReg.test(strEmail)returntrue;elsereturnfalse;,常用正则实例,验证电话号码functionisTel(s)varpatrn=/(d3-)?d8|(d4-)(d7,8)$/;if(!patrn.test(s)returnfalsereturntrue校验手机号码functionisMobil(s)varpatrn=/13,5d9$/;if(!patrn.test(s)returnfalsereturntrue,常用正则实例,验证邮政编码functionisPostalCode(s)varpatrn=/d6$/;if(!patrn.test(s)returnfalse;returntrue;,常用正则实例,验证日期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;,总结,正则表达式语法简洁,实现简单正则表达式使得JavaScript的客户端验证更加容易正则表达式还能够应用在C#和JAVA中,有着非常广阔的应用前景,
展开阅读全文