版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、正则表达式的定义方法在JavaScript中,正则表达式是由一个RegExp对象表示的,利用RegExp对象来完成有关正则表达式的操作和功能。正则表达式的定义共有2种方式:(1)显式定义;(2)隐式定义;1、显式定义所谓的“显式”就是让大家一眼就看出这就是正则表达式的定义,足够明显。显式定义必须是使用new关键词来定义。语法:var 变量名 = new RegExp(正则表达式模式);说明:显式定义的正则表达式必须要使用双引号括起来,这里要注意字符串的转义。2、隐式定义所谓的“隐式”指的是有点阴阴湿湿,没那么明显,大家可能一眼没有看出这是正则表达式的定义。语法:var 变量名 = /正则表
2、达式模式/说明:隐式定义的正则表达式开头和结尾都必须是斜杠“/”。记得使用隐式定义的正则表达式是不需要使用双引号括起来的,这一点跟显式定义的正则表达式不一样!隐式定义是最常用的方式,建议大家以后都使用这种方式定义正则表达式,代码量少并且方便。举例:var myregex = new ReExp(0-9);上面语句等价于下面:var myregex = /0-9/;二、test()方法在JavaScript中,可以使用RegExp对象的test()方法来指出被查出的字符串中是否匹配正则表达式模式。语法:regex.test(str)说明:regex为必选项,表示正则表达式模式。str为必选项,表
3、示字符串。该方法返回一个boolean值。也就是说,test()方法检查字符串str是否符合正则表达式模式rgexp,如果符合,则返回true;如果不符合,则返回false。怎么更好的理解test()方法呢?举个例子,验证邮政编码的正则表达式模式为“ d6”。“d6”表示6个字符都是数字,如果某一个字符串符合“6个字符都是数字”这种模式,那么test()方法就返回true,如果不符合,则返回false。例如字符串“510632”就符合正则表达式模式“d6”。而字符串“abc123”或“lvyestudy”就不符合正则表达式模式“d6”,因为“abc123”虽然是6个字符,但是不符合所有字符都是
4、数字。而“lvyestudy”不符合得原因有2点:字符超过6个字符;字符都不是数字。代码示例:var str1=710021;var str2=lvyestudy;/定义正则表达式var myregex = /d6/;/判断字符串str1是否匹配正则表达式myregexif(myregex.test(str1)document.write(710021是正确的邮政编码+);elsedocument.write(710021不是正确的邮政编码+);/判断字符串str2是否匹配正则表达式myregexif(myregex.test(str2)document.write(goodstudy是正确的
5、邮政编码);elsedocument.write(goodstudy不是正确的邮政编码);三、常用元字符在正则表达式中,包括2种字符:(1)普通字符;(2)特殊字符(元字符);普通字符就是az、09这类常见的字符。其中特殊字符又称为“元字符”。元字符之所以叫特殊字符,就是它的特点跟普通字符不一样。例如邮政编码中,我们限定只能输入6个数字,那“数字”这个概念怎么理解呢?这个时候我们就用到了元字符d来代替。正则表达式常用的元字符如下:1、举例10d2-d8分析:其实上面这个正则表达式匹配的是中国的电话号码,以0开头,然后是两个数字,然后是一个连字号“-”,最后是8个数字。d2表示数字重复2次,d8
6、表示数字重复8次。记住,d匹配是“数字”,很常用。2、8这些是限定符的内容。2、举例2var str/定义正则表达式var myregex = /0d2-d8/;/判断字符串str是否匹配正则表达式myregexif(myregex.test(str)alert(匹配);elsealert(不匹配);3、举例3var str=;/定义正则表达式var myregex = /;/判断字符串str是否匹配正则表达式myregexif(myregex.test(str)alert(匹配);elsealert(不匹配);分析:var myregex = /;这一句中,1234
7、56表示可以匹配16中任意一个数字。上面正则表达式的实际作用是匹配HTML标签中的、和。四、连接符正则表达式就要这样写:0123456789其中表示匹配方括号内的任一字符。在正则表达式中,匹配数字或者英文字母的书写非常不方便。因此,正则表达式引入了连接符“-”来定义字符的范围。举例:0-9a-zA-z分析:上面正则表达式匹配非数字、英文字母的其他字符。五、限定符限定符,就是限定某个或某类字符出现的次数。例如,邮政编码都是6位数,因此对于表单中的邮政编码,我们在正则表达式中要限定其为6位数字。匹配邮政编码的正则表达式是“d6”,其中“6”就是限定符。常用的正则表达式限定符如下:1、+在正则表达式
8、中,使用+限定前导字符重复1次或更多次。举例:go+分析:由于使用了+限定符,因此字母o必须出现1次或者更多次。所以匹配上面正则表达式的字符串有go、good、god等,但是get、g就不匹配了。2、*在正则表达式中,使用*限定前导字符重复0次或更多次。举例:go*分析:由于使用了*限定符,因此字母o必须出现0次或者更多次。所以匹配上面正则表达式的字符串有g、go、good、god等,但是get等就不匹配了。注意一下,在这里字符串g是匹配的,*限定符跟+限定符不一样,因为+限定符限定前导字符必须出现1次以上。3、?在正则表达式中,使用?限定前导字符重复0次或1次(最多1次)。举例:go?分析:
9、由于使用了?限定符,因此字母o必须出现0次或者1次。所以匹配正则表达式的字符串只有g、go这2种,其他的诸如god、good、get等就不匹配了。我们都知道“颜色”的英文是color或者colour,这个时候我们可以使用?限定符。colou?r表达式u?表示字母“u”可以出现1次或者不出现。4、n在正则表达式中,使用n限定前导字符重复n次。举例:go3分析:由于使用了?限定符,因此字母o必须出现3次。所以匹配正则表达式的字符串只有gooo这1种,其他的诸如god、good、get等就不匹配了。5、n,在正则表达式中,使用n,限定前导字符重复n次或更多次。举例:go3,分析:由于使用了?限定符,
10、因此字母o必须出现3次或更多次。所以匹配正则表达式的字符串只有gooo,goooo,gooooo。6、n,m在正则表达式中,使用n,m限定前导字符重复n到m次(也就是nm之间任意一个次数)。举例:go1,3分析:由于使用了?限定符,因此字母o必须出现13次。所以匹配正则表达式的字符串只有go、goo、gooo这3种六、定位符常用的正则表达式定位符如下:七、转义字符正则表达式包括2种字符:(1)普通字符;(2)特殊字符。如果我们要匹配正则表达式中的特殊字符,我们就必须在该特殊字符前面加上反斜杠“”将其进行转义。例如我们要匹配“go+”这个字符(这里说的是字符),那正则表达式怎么写呢?很多初学者会
11、写成下面这种形式:go+根据前面学习的“正则表达式限定符”我们知道,上面的正则表达式使用了+限定符,因此字母o必须出现1次或者更多次。所以匹配上面正则表达式的字符串有go、good、god等。但是我们只想匹配“go+”这3个字符!正常写法如下:go+分析:因为+是正则表达式的特殊符号,因此必须在+前面加上“”对其进行转义。例如要匹配字面意义的“”,就需要使用“”表示。需要转义的字符有:$、(、)、*、+、.、?、/、|。八、分组符在正则表达式中,分组又称为子表达式,即把一个正则表达式的全部或部分分成一个或多个组。其中,分组使用的字符为“(”和“)”,即左圆括号和右圆括号。分组之后,用小括号括起
12、来的表达式看出一个整体来处理。举例:/(abc)2/abc2/(ah-n)2/分析:第一个正则表达式: 使用()把abc分为一组; 2表示把(abc)这一组重复2次;因此,这个正则表达式匹配的是必须包含abcabc的字符串。第二个正则表达式: abc表示匹配a、b、c中任意一个字符; 2表示把abc重复2次;因此,这个正则表达式匹配的字符是ab、dac、cfbchj等中含有a、b、c中任意两个字符组合(比如ab、bc、ac)的字符串。第三个正则表达式: h-n表示匹配字母hn中任意字母; 使用小括号()把ah-n分成一组; 然后使用限定符2使得该组必须重复2次因此,正则表达式匹配的字符有:aiai、ajaj123这一类。对于正则表达式中的分组,用一句话理解,就是把某几个字符当做一个整理来处理。九、选择符选择符,很简单。在正则表达式中,选择符是“|”,用于选择匹配2个选项之中的任意一个,类似JavaScript中的“或”运算。例如,“abc|def1”匹配的是“abc”
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年互联网行业报告:新经济形态下的行业机遇与挑战
- 2026年人工智能技术发展与应用创新报告
- 2026年旅游行业连锁加盟机遇与挑战报告
- 2026年轴流风扇行业发展行业报告
- 2026年环保行业报告:高线城市环保消费升级与品牌服务体验创新分析
- 2026年铲运机自动化控制创新分析报告
- 2026年车牌识别技术产业分析报告001
- 2026年微电网技术在智能社区中的应用与前景报告
- 2026年X射线衍射技术行业创新案例深度解析报告
- 2026年稀有稀土金属行业发展行业报告
- QGDW10212-2019电力系统无功补偿技术导则
- 英语六级真题试卷及答案电子版
- 银行客户经理培训课件
- T-SZRCA 009-2024 拖链型机器人特种线缆技术规范
- 石油开采合作合同三篇
- GB/T 6003.2-2024试验筛技术要求和检验第2部分:金属穿孔板试验筛
- 1输变电工程施工质量验收统一表式(线路工程)-2024年版
- 林地茶叶种植管护培训课件
- 图神经网络及其应用
- 能源管理体系培训课件(2023年EnMS)
- 【公开课】2023届高三化学一轮复习氯及其化合物++课件+
评论
0/150
提交评论