




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JavaScript中的正则表达式处理,回顾,DOM简介 DOM属性和方法 DOM操作HTML元素实例,本章目标,正则表达式简介 正则表达式语法 定义正则表达式 表达式模式 通配符使用 表达式操作 正则表达式实例,正则表达式简介,简单的说,正则表达式是一种可以用于文字模式匹配和替换的强有力的工具。是由一系列普通字符和特殊字符组成的能明确描述文本字符串的文字匹配模式 。 使用正则表达式,就可以: 测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。 替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。 根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。,定义正则表达式,1)定义正则表达式有两种形式,一种是普通方式,一种是构造函数方式。 2)普通方式:var reg=/表达式/附加参数 表达式:一个字符串,代表了某种规则,其中可以使用某些特殊字符,来代表特殊的规则,后面会详细说明。 附加参数:用来扩展表达式的含义,目前主要有三个参数: g:代表可以进行全局匹配。 i:代表不区分大小写匹配。 m:代表可以进行多行匹配。 上面三个参数,可以任意组合,代表复合含义,当然也可以不加参数。 例子: var reg=/a*b/; var reg=/abc+f/g; 3)构造函数方式:var reg=new RegExp(“表达式”,”附加参数”); 其中“表达式”与“附加参数”的含义与上面那种定义方式中的含义相同。 例子: var reg=new RegExp(“a*b”); var reg=new RegExp(“abc+f”,”g”); 4)普通方式与构造函数方式的区别 普通方式中的表达式必须是一个常量字符串,而构造函数中的表达式可以是常量字符串,也可以是一个js变量,例如根据用户的输入来作为表达式参数等等: var reg=new RegExp(document.forms0.exprfiled.value,”g”);,表达式模式,表达式模式,是指表达式的表达方式与样式, 即 var reg=/表达式/附加参数 中的“表达式”怎样去描述? 从规范上讲,表达式模式分为简单模式和复合模式. 简单模式:是指通过普通字符的组合来表达的模式,例如: var reg=/abc0d/; 可见简单模式只能表示具体的匹配。 复合模式:是指含有通配符来表达的模式,例如: var reg=/a+b?w/; 其中的+、?和w都属于通配符,代表着特殊的含义。因此复合模式可以表达更为抽象化的逻辑。,通配符的含义及其使用,1:在许多编程语言里面被用作转义符,一般来说 符号后面如果跟的是普通字符c,那么c就代表特殊的含义,例如n本来代表字符n,但n就代表换行。 符号后面如果跟的是特殊字符c,那么c就代表普通字符c,例如一般用作转义符,但则调表普通字符。 2:匹配输入字符串的起始端,如果是多行匹配,即表达式的附加参数中含有m,则也在一个换行符后匹配。例子:/B/匹配 “Bab Bc ”中的第一个B 3$:匹配输入字符创的尾端,如果是多行匹配,即表达式的附加参数中含有m,则也在一个换行符前匹配。与的用法相反。 例子:/t$/匹配“bat”中的t,但是不匹配“hate”中的t 4*:匹配前一个字符0次或多次。 例子:/ab*/匹配“dddabbbbc”中的“abbbb”,也匹配“ddda”中的“a” 5+:匹配前一个字符1次或多次。 例子:/ab+/匹配“dddabbbbc”中的“abbbb”,但不匹配“ddda” 6d:匹配一个数字字符,等同于0-9。 例子: var regx=/userd/; var rs=regx.test(“user1”); 结果:匹配成功,返回true,表达式操作,表达式操作,在这里是指和表达式相关的方法 表达式对象(RegExp)方法: 1exec(str),返回str中与表达式相匹配的第一个字符串,而且以数组的形式表现,当然如果表达式中含有捕捉用的小括号,则返回的数组中也可能含有()中的匹配字符串,例如: var regx=/d+/; var rs=regx.exec(“3432ddf53”); 返回的rs值为:3432 2test(str),判断字符串str是否匹配表达式,返回一个布尔值。例如: var regx=/userd+/g; var flag=regx.test(“user12dd”); flag的值为true。,表达式操作,String对象方法 1match(expr),返回与expr相匹配的一个字符串数组,如果没有加参数g,则返回第一个匹配,加入参数g则返回所有的匹配 例子: var regx=/userd/g; var str=“user13userddduser345”; var rs=str.match(regx); rs的值为:user1,user3 2search(expr),返回字符串中与expr相匹配的第一个匹配的index值。 例子: var regx=/userd/g; var str=“user13userddduser345”; var rs=str.search(regx); rs的值为:0,表达式操作,String对象方法 3replace(expr,str),将字符串中匹配expr的部分替换为str。另外在replace方法中,str中可以含有一种变量符号$,格式为$n,代表匹配中被记住的第n的匹配字符串(注意小括号可以记忆匹配)。 例子: var regx=/userd/g; var str=“user13userddduser345”; var rs=str.replace(regx,”00”); rs的值为:003userddd0045 4split(expr),将字符串以匹配expr的部分做分割,返回一个数组,而且表达式是否附加参数g都没有关系,结果是一样的。 例子: var regx=/userd/g; var str=“user13userddduser345”; var rs=str.split(regx); rs的值为:3userddd,45,实际应用,描述:有一表单,其中有一个“用户名”input域 要求:汉字,而且不能少于2个汉字,不能多于4个汉字。 实现: function checkForm(obj) var username=obj.username.value; var regx=/u4e00-u9fa52,4$/g if(!regx.test(username) alert(“Invalid username!”); return false; return true; ,实际应用,描述:给定一个含有html标记的字符串,要求将其中的html标记去掉。 实现: function toPlainText(htmlStr) var regx=/*|*/gm; var str=htmlStr.replace(regx,“); return str; ,小结,Javascript正则表达式,在一般的程序员之中,使用者应该不是很多,因为我们处理的页面一般都不是很复杂,而复杂的逻辑一般我们都在后台处理完成了。但是目
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第一节 核酸是遗传物质的证据说课稿-2025-2026学年高中生物浙科版必修2遗传与进化-浙科版
- 第3課 自分にできるボランティア活動说课稿-2025-2026学年高中日语人教版第一册-人教版
- 江苏省镇江市八年级政治下册 第五单元 与法同行 第16课 消费者的合法权益受法律保护 第2框 依法维护消费权益说课稿 苏教版
- 中医试题及答案国医通
- 武汉市公立中学公开招聘初中教师2名笔试含答案
- 互联网医疗合作出资方合作协议样本
- 矿业企业员工试用期安全生产与职业健康协议
- 四城区住房保障家庭租赁补贴资金使用与监管协议
- 高端商业广场商铺租赁合同包含装修及使用权
- 2025合同范本:销售人员绩效考核制度示例
- 石油行业安全培训课件
- 国开电大组织行为学任务四调查报告
- 事业单位医学基础知识名词解释
- 施工现场安全监理危险源清单一览表
- GB/T 233-2000金属材料顶锻试验方法
- FZ/T 74003-2014击剑服
- 颈椎DR摄影技术-
- 功能材料概论-课件
- 一点儿有点儿课件
- 眼视光技术专业技能考核题库-眼镜定配技术模块
- 体育测量与评价-第二章-体育测量与评价的基础理论课件
评论
0/150
提交评论