




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章 正则表达式 正则表达式(Regular Expression)是一种用于描述文本规则的代 码。正则表达式对象(RegExp Object)提供了对正则表达式操作的 支持。 10.1 正则表达式简介 没有使用过正则表达 式的读者可能会觉得 正则表达式很复杂, 事实上,正则表达式 并没有想象中的那么 复杂。回想一下在 Windows操作系统 中是怎么查找文件的 ,如果要想查找所有 扩展名为htm的文件 ,在搜索框中应该输 入“*.htm”,搜索结 果如图10-1所示。 10.2 正则表达式语法 正则表达式由元字符和普通字符组成。所谓元字符就是类似于“*”、“ ?”之类的有意义的字符,所谓普通字符就是字符串中常用的字符, 如10.1节中的“*.htm”,“*”是元字符,“.htm”是普通字符。将元字符 和普通字符放在一对斜杠中(/)中,就可以组成一个正则表达式。 10.2.1 匹配字符 最简单的正则表达式就是字符本身的匹配,这种匹配方法相当于“精 确查找”。例如,要查找字符串中是否存在字符“abc”,那么只要将 “abc”本身放在两个斜杠中,就形成了一个正则表达式,如以下代码 所示: /abc/ 10.2.2 字符类 字符类(Character Class)在正则表达式中可以代表一系列字符, 而不是像10.2.1节那样,只能代表一个字符或一个子字符串。字符类 是以中括号作为分界符的,假设要匹配字母A或B或C,那么就可以使 用以下正则表达式。 /ABC/ 10.2.3 界定符 假设有一个字符串中的内容为“JavaScript是一种脚本语言,使用 JavaScript可以创建动态网页,现在我们开始学习JavaScript”,在 这个字符串中,“JavaScript”一共出现了3次,一次是在句首,一次 是在句中,一次是在句尾。现在要求匹配句首和句尾的“JavaScript” 要怎么办? 10.2.4 选择符 假设要在一个字符串中查找“JavaScript”或“VBScript”,这要如何使 用正则表达式来进行匹配呢?在正则表达式中有一个选择符“|”,使用 这个选择符可以用来匹配多个字符,例如,代码清单10-3中的代码就 可以替换“JavaScript”或“VBScript”,运行结果如图10-3所示。 10.2.5 重复类 字符类都只能匹配一个字符,例如,“0-9”只能匹配数字0至9,如果 要匹配10至99,那么就需要使用“1-90-9”。单纯的这种字符类的 重复是比较麻烦的表示法,如果要匹配一个6位的邮政编码,就要将 “0-9”重复6次;如果要匹配一个18位的身份证号码,就要将“0-9” 重复18次,这种做法是十分不科学的。 10.2.6 分组 使用重复类可以将前一项重复多次,如正则表达式“/JavaScript?/”可 以匹配字符串“JavaScrip”或“JavaScript”,因为重复类“?”说明要 将前一项,也就是字符“t”重复0次或1次。假设要匹配字符串“Java” 或“JavaScript”,这要怎么实现? 10.2.7 引用 在正则表达式中,会给每一个分组分配一个编号,使用这个编号可以 将匹配的内容在正则表达式中作进一步的处理。正则表达式给分组分 配的编号方式为,从正则表达式左侧开始,第1个分组的编号为1,第 2个分组的编号为2,依此类推。 10.2.8 其他匹配 正则表达式里还有两种匹配方式,这两种匹配方式是选择性的匹配, 如以下代码所示: x(?=y) x(?!y) 10.2.9 匹配规则 正则表达式在匹配字符串时,只要遇上可以匹配到的字符串就会停止 匹配。如果想在匹配到字符串之后还继续匹配字符串中其他内容,就 必须要在正则表达式后加上标志符“g”。 10.3 正则表达式对象 正则表达式对象(RegExp Object)可以提供对正则表达式操作的支 持。其中正则表达式对象的方法多用于测试匹配字符串是否匹配,正 则表达式对象的属性多用于返回正则表达式中的一些特性。 10.3.1 正则表达式对象的构造函数 使用正则表达式对象的构造函数RegExp( )可以定义一个正则表达式 对象。RegExp( )构造函数的语法代码如下所示: 数字对象名 = new RegExp(regular ,att) 数字对象名 = RegExp(regular ,att) 10.3.2 返回匹配成功的字符串 正则表达式对象的exec( )方法可以将成功匹配到的字符串放在数组中返回。 exec( )方法的语法代码如下所示: regexp.exec(string) 10.3.3 测试匹配成功与否 正则表达式的test( )方法可以用来测试正则表达式匹配是否成功。如 果匹配成功则返回true,否则返回false。test( )方法的语法代码如下 所示: regexp.test(string) 10.3.4 判断正则表达式中是否存在指定标志 正则表达式可以使用i标志来说明匹配时不区分大小写,使用g标志来 说明执行全局匹配,使用m标志来说明执行多行匹配。正则表达式对 象中的ignoreCase属性、global属性和multiline属性可以分别判断 正则表达式中是否存在i标志、g标志或m标志。如果存在则返回true ,如果不存在则返回false。 10.3.5 匹配成功后字符串的结束位置 正则表达式对象的lastIndex属性可以返回匹配成功后字符串的结束 位置。假设一个正则表达式可以匹配字符串“abcde”中的“bc”,那么 该正则表达式的lastIndex属性值为3。可以在一次成功匹配后获得 lastIndex属性值,然后再将该属性值作为下一次匹配的起点。 10.3.6 正则表达式对象的静态属性 正则表达式对象的静态属性并不是由正则表达式对象来引用的,而是 由正则表达式对象构造函数RegExp( )来引用的。在每次执行完正则 表达式对象的exec( )方法和test( )方法之后,JavaScript都会把匹配 到的一些相关信息以属性的形式放在正则表达式对象的构造函数中, 通过对正则表达式对象的静态属性可以引用这些相关信息。 10.3.7 其他方法 正则表达式对象的方法并不多,除了前面章节里介绍的exec( )方法和 test ()方法之外,还有toString( )方法和toSource( )方法。这两个方 法都可以返回正则表达式对象中的正则表达式,包括界定符()和标 志(i、g、m),但toSource( )方法并不是所有浏览器都支持的方法 。 10.4 其他对象的正则表达式用法 由于正则表达式的匹配方式十分灵活,所以在JavaScript中得到了广 泛的支持,除了正则表达式本身的支持之外,字符串对象和数组对象 中对正则表达式都有不同程度的支持。 10.4.1 字符串对象 字符串对象中的replace( )方法可以支持正则表达式,这一点在前面 章节中已经多次使用过,在此就不再赘述了。除了replace( )方法之 外,字符串对象split( )也可以使用正则表达式将字符串分割成数组。 10.4.2 数组对象 数组对象的input属性和index属性只能用于使用正则表达式所创建的 数组中,如使用字符串对象的match( )方法、使用正则表达式对象的 exec( )方法所创建的数组。其中,input属性可以返回用于创
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版高品质商品房预售协议合同范本解读
- 2025版天强建设工程有限公司承接XX学校教学楼及宿舍楼工程合同
- 2025版通信网络优化通信劳务分包合同规范文本
- 2025版全新民间借款合同利息计算及下载服务
- 2025版泰和泰大豆短量合同审查与诉讼代理服务合同
- 2025年度生猪屠宰与屠宰废弃物处理设施建设合同
- 2025年度多人持股企业股权转让及后续分红权益分配合同
- 2025标准私人别墅购置合同
- 2025版金融创新产品融资咨询与居间服务协议
- 2025年新能源汽车充电桩股份投资与运营管理协议
- 人教版高中生物必修1全册教学课件
- 青岛版小学数学五年级上册教案全册
- 11节约我们在行动(教学课件)五年级综合实践活动上册(苏少版)
- 2024年卫星遥感数据服务长期租赁合同
- 2024年浙江省单独招生文化考试语文试卷(含答案详解)
- DB21-T+3942-2024.建筑消防设施维护保养技术规程
- 精神科意外事件防-噎食
- 国家职业技术技能标准 6-28-01-03 汽轮机运行值班员 人社厅发202226号
- GB/T 44633-2024电力突发事件信息报送技术规范
- 虹桥商务区核心区一期及南北片区集中供能专项规划
- 2024年新人教版地理七年级上册全册课件
评论
0/150
提交评论