正则表达式(javascript)

上传人:wt****50 文档编号:55785589 上传时间:2018-10-06 格式:PPT 页数:20 大小:1.33MB
返回 下载 相关 举报
正则表达式(javascript)_第1页
第1页 / 共20页
正则表达式(javascript)_第2页
第2页 / 共20页
正则表达式(javascript)_第3页
第3页 / 共20页
正则表达式(javascript)_第4页
第4页 / 共20页
正则表达式(javascript)_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《正则表达式(javascript)》由会员分享,可在线阅读,更多相关《正则表达式(javascript)(20页珍藏版)》请在金锄头文库上搜索。

1、,正则表达式,正则表达式,在JavaScript脚本中,利用正则表达式可以很容易的实现文本字符串的检测、替换等功能。 正则表达式是字符串,它定义了一个用来搜索匹配字符串的模式。定义模式:/表达式/ JavaScript脚本语言中引入正则表达式主要作用: 验证字符串格式 查找字符串 替换文本,正则表达式,正则表达式的应用场合: 表单验证:验证表单中某些域是否符合某种规则 处理DOM模型:正则表达式可以操作DOM对象或者与DOM对象交互。如通过正则表达式定位DOM中的一个对象。 纯编编程逻辑在WEB开发时,常会判断一个字符串有效性,如一个字符串是否是数字、是否为合法的E-MAIL地址等。,如何使用

2、正则表达式?,从指定字符串中搜索子字符串“abc”, function test1 () var mystr=doucument.form1.test.value;var myreg=new RegExp(“abc”);if(myreg.test(mystr);alert(“目标字符串中存在子串abc”);elsealert(“目标字符串中不存在子串abc”);,创建正则表达式,调用正则表达式 的test 方法,使用正则表达式的大致步骤: 创建正则表达式 调用相关对象的方法,得到匹配结果,RegExp对象的创建,在 JavaScript中,正则表达式的构造可以有两种方法: 采用RegExp对象

3、的显式构造函数构造,var reg=new RegExp(“参数”,“flags”),var reg=/参数/flags,采用RegExp对象的隐式构造函数构造,flags标志信息项,示例,显示创建正则表达式:var myregx=new RegExp(“abc”); 可以加标志信息,如忽略大小写:var myregx=new RegExp(“abc”,”i”);隐式创建正则表达式:var myregx=/abc/; 可以加标志信息,如全文搜索且忽略大小写:var myregx=/abc/ig;,两种构造方式效果是一样的,但仍有小差别,隐式构造在脚本执行时进行编译,一般常用到这个正则表达式式时

4、,用隐式构造法;显式构造法遇到正则表达式时才进行编译,在这个表达式使用较少下使用显式构造法。,正则表达式的操作方法,正则表达式有七种标准的操作方法 test( )方法:对字符串执行一次测试性搜索,匹配成功返回true;否则返 回false。 exec( )方法:对指定的字符串执行正则表达式的搜索,返回一个包含结 果的数组。 compile( )方法:更换RegExp对象实例所使用的表达式模式 search( )方法:用来搜索字符串中与正则表达式匹配的子字符串的位置。 match( )方法:用来执行全局查找,并把查找结果放在一个数组里。 replace( )方法:在一个字符串中通过正则表达式查找

5、并替换相应内容。不 改变原来的字符串,只是重新生成了一个新的字符串。 split( )方法:用来返回按某种分割标志符将一个字符串拆分为若干个子字 符串时所产生的子字符串数组。,如何构造正则表达式,要精确构造所需的正则表达式不是容易的事,要运用好正则表达式,则须充分了解正则表达式的构造语法。正则表达式的语法主要是对正则表达式各个元字符功能的描述。正则表达式分为简单模式和复杂模式。,简单模式,简单模式包括普通字符、特殊字符、字符类及量词等。普通字符:字母、数字、汉字、下划线及没有特殊定义的 标点符号。 特殊意义的字符:* + ( )$ .等 这些特殊意义的字符必须加上转义字符,如表示*必须用*特殊

6、字符:不便表示的字符,如回车、换行、制表等,表 示时也必须加上转义字符。,简单模式,简单模式包括普通字符、特殊字符、字符类及量词等。字符类:包括简单类、反向类、范围类、组合类及预定义类 简单类:用方括号“ ”表示单个字符的“或”的关系,匹配方 括号内任意一个字符。 如:/abc/可以匹配a、b、c中任意一个字符反向类:用来匹配不在括号内的任意字符。 如:/abc/可匹配除a、b、c外的其他任意字符范围类:0-9表示匹配从0-9任意的数字,简单模式,字符类:包括简单类、反向类、范围类、组合类及预定义类 组合类:即简单类、反向类和范围类的组合。 如:/a-z0-9./可以匹配a-z、0-9和.中任

7、意一个字符 预定义类:用某些特别的表示来表示某些组合类。,用户名合法性检测,如何用户名的检测,用户名以字母或数字开头, 加单词字符,并以数字结尾的子字符串?,1、RegExp对象 2、正则表达式表示为/a-z0-9wd$/,输入用户名单击 按钮检测,function test_zifulei(obj) var username=obj.username.value;var regx=/a-z0-9wd$/g/不包含规定字符,用户名无效if(!regx.test(username) alert(“n用户名检测 : nn结果 : 用户名不合法! n“);obj.username.focus();e

8、lse alert(“n用户名检测 : nn结果 : 用户名合法! n“); ,用户名合法性检测,正则表达式的表示,量词,正则表达式中,量词是用来限制某些匹配字符个数的,也称限定符。,正则表达式的量词有:,举例,电话号码格式:四位区号-七位号码 正则表达式表示为:/d4-d7/ 物品价格匹配:以¥开头的物品价格 正则表达式表示为:/¥d+.?d*/,复杂模式,边界定位符:进行验证时,使用定位符来限定字符的位置以 便更快匹配目标子串。 常见的边界定位符:,如:/aaa/即必须以aaa开始的字符串/aaa$/即必须以aaa结束的字符串/bjavab/即字符串中java的前后须有空格,functio

9、n isMobil(obj) var str=obj.mobilenum.value;var patrn=/(+86)?13d9$/;var msg=“n使用正则表达式验证手机号码 :nn“;msg+=“手机号码 : “ +str+“n“; if (!patrn.exec(str)msg+=“验证结果 : 手机号码不合法!n“;alert(msg);return false; elsemsg+=“验证结果 : 手机号码合法!n“;alert(msg);return true; ,手机号码合法性检测,正则表达式 的表示,其中$ 是定位符,function checkmail() var email=document.form3.email.value;alert (email);var reg=/w+(-.w+)*w+(-.w+)*.w+(-.w+)*$/;if(reg.test(email)alert(“合法的电子邮件!“);return true;elsealert(“电子邮件格式不正确“);return false; ,验证电子邮件地址,正则表达式 的表示,电子邮件地址必须含有和.符号,并且.符号在符号之后。,小结,正则表达式的概念正则表达式的构造正则表达式有何优势,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号