第05章:正则表达式_第1页
第05章:正则表达式_第2页
第05章:正则表达式_第3页
第05章:正则表达式_第4页
第05章:正则表达式_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第5章正则表达式回顾回顾通过创建通过创建DateDate对象,可以获取计算机中的时间。对象,可以获取计算机中的时间。在本地创建在本地创建ImageImage对象,可以实现图像缓冲技术。对象,可以实现图像缓冲技术。使用使用MathMath对象进行数学运算。对象进行数学运算。用数组列表或者用数组列表或者ArrayArray对象创建数组后,可以使用对象创建数组后,可以使用“数组变量名数组变量名 索引号索引号”的格式来访问每个数组元素。的格式来访问每个数组元素。StringString对象常用的属性:对象常用的属性:lengthlength,获取字符串的字符个数。常用,获取字符串的字符个数。常用的方法

2、:的方法: charAtcharAt()():返回字符串对象中指定索引处的字符;:返回字符串对象中指定索引处的字符; indexOfindexOf()():返回某个子字符串在目标字符串中首次出现的位:返回某个子字符串在目标字符串中首次出现的位置;置; substrsubstr()():从指定索引位置开始截取指定长度的字符串;:从指定索引位置开始截取指定长度的字符串; substringsubstring:返回指定索引范围内的字符串。:返回指定索引范围内的字符串。理论内容理论内容正则表达式及其作用正则表达式及其作用RegExpRegExp对象对象正则表达式的元字符正则表达式的元字符StringS

3、tring对象与正则表达式对象与正则表达式正则表达式验证表单正则表达式验证表单我们已经接触过与正则表达式有关的一些概念。例如在我们已经接触过与正则表达式有关的一些概念。例如在Windows操作系统中,用操作系统中,用“?”和和“* *”通配符来查找硬盘上的文件时,通配符来查找硬盘上的文件时,“?”?”通配符匹配文件名中的单个字符,而通配符匹配文件名中的单个字符,而“* *”通配符匹配零个或多个通配符匹配零个或多个字符。如字符。如“data?.dat”就是一种文本模式,它能匹配就是一种文本模式,它能匹配“data1.dat”、“datan.dat”和和“dataw.dat”。“data*.da”

4、是另外一种文本模式是另外一种文本模式,它匹配,它匹配“data.dat”t”、“data1.dat”、“datawnc.dat”和和“datadiff.dat”等文件名。等文件名。正则表达式的功能和概念类似于正则表达式的功能和概念类似于“* *”和和“?”?”通配符所实现的功能通配符所实现的功能和概念,但它的功能更强大,而且更加灵活。和概念,但它的功能更强大,而且更加灵活。5.1 正则表达式及其作用正则表达式及其作用创建创建RegExp对象实例的两种方式:对象实例的两种方式: (1)构造函数方式)构造函数方式 var reg=new RegExp(“表达式”,“附加参数”); (2 2)普通方

5、式)普通方式 var reg=/表达式/附加参数 附加参数是可选的,用来扩展正则表达式的含义,主要有三个参数: (1)g:全局匹配。 (2)i:用作忽略大小写的参数。 (3)m:多行匹配。 5.2 RegExp对象对象test方法方法 该方法检查一个字符串中是否存在创建RegExp对象实例时所指定的正则表达式模式,如果存在则返回true,否则返回false。5.2 RegExp对象对象regExpObject.test(string);检查字符串中是否存在检查字符串中是否存在“world”。5.2 RegExp对象对象 var str=hello world; var regExp=new R

6、egExp(world); var result=regExp.test(str); document.write(result); /true 调用调用RegExp()RegExp()的构造函数创建正则表达式对象的构造函数创建正则表达式对象regExpregExp。调用正则表达式对象的调用正则表达式对象的test()test()方法检查目标字符串方法检查目标字符串strstr中中是否包含模式是否包含模式worldworld。如果在。如果在strstr中查找到模式中查找到模式worldworld,在,在页面上输出页面上输出test()test()的返回值的返回值truetrue,否则输出返回值

7、,否则输出返回值falsefalse。检查字符串中是否存在检查字符串中是否存在“world”,并忽略大小写。,并忽略大小写。5.2 RegExp对象对象 var str=HELLO WORLD; var regExp=/world/i; var result=regExp.test(str); document.write(result); /true 将正则表达式将正则表达式/world/i/world/i赋给变量赋给变量regExp,regExp,这是用普这是用普通方式创建正则表达式对象,附加参数通方式创建正则表达式对象,附加参数i i表示忽略表示忽略worldworld的大小写,所以在用

8、正则表达式对象的的大小写,所以在用正则表达式对象的testtest方法检查方法检查“HELLO WORLD”HELLO WORLD”中是否存在中是否存在“world”world”模模式时,返回值是式时,返回值是truetrue。exec方法方法 exec方法使用RegExp对象实例创建时指定的正则表达式模式搜索字符串,并返回一个包含搜索结果的数组。5.2 RegExp对象对象regExpObject.exec(string);在在“我爱祖国我爱家乡我爱祖国我爱家乡”中搜索中搜索“我我”,并输出,并输出“我我”在被搜索的字符串中在被搜索的字符串中的位置。的位置。5.2 RegExp对象对象 va

9、r str=我爱祖国我爱家乡; var regExp=/我/; var result=regExp.exec(str); document.write(在索引+result.index+位置出现了+result); exec方法返回的数组有index属性,它表示匹配的字符串在整个被搜索字符串中的位置;exec方法每次从字符串的起始位置搜索第一个与模式匹配的字符串。限定符限定符 n:规定前面的元素或组合项要连续出现n次。5.3 正则表达式的元字符正则表达式的元字符var regExp=/he2/; var str=heeel;var flag= regExp.test(str)document.

10、write(flag); 执行代码后,在页面上输出true,因为在字符串“heeel”中,存在he2文本模式。如果要让正则表达式“he2”中的“he”同时受到2的作用,必须使用圆括号将它们括起来,使它们成为一个紧密结合的组合项,这样2就表示圆括号中的内容连续出现2次。限定符限定符 (1)n:规定前面的元素或组合项要连续出现n次。5.3 正则表达式的元字符正则表达式的元字符var regExp=/(he)2/;var str=heeel;var flag= regExp.test(str)document.write(flag); /false 字符串“ehehel”是否存在(he)2的文本模式

11、?限定符限定符 (2)n,:规定前面的元素或组合项至少出现n次。例如“o2,”,字符串“bod”不能与之匹配,但“foood”可以与之匹配。 (3)n,m:规定前面的元素或组合项至少连续出现n次,至多连续出现m次,其中nm,逗号和数字之间不能有空格。例如“o1,3”,字符串“food”和字符串“foood”都能与之匹配。 (4)+:规定前面的元素或组合项必须出现一次或连续出现多次,等效于1,。 (5)*:规定前面的元素或组合项可以出现零次或连续多次,等效于0,。例如“zo*”,字符串“z”和“zoo”都能与之匹配。 (6)?:规定前面的元素或组合项出现零次或一次,等效于0,1。例如“zo?”,

12、字符串“z”和“zo”都能与之匹配。5.3 正则表达式的元字符正则表达式的元字符选择匹配符选择匹配符 选择匹配符有且仅有一个,即“|”字符,用于选择匹配两个选项之中的任意一个。例如“chapter|section1”匹配的是“chapter”或“section1”,如果要匹配“chapter1”或“section1”,使用括号,即“(chapter|section)1”。5.3 正则表达式的元字符正则表达式的元字符字符匹配符字符匹配符 (1):匹配方括号中包含的字符集中的任意一个字符。例如,正则表达式“abc”,字符“a”、“b”、“c”都可以与之匹配。 (2):匹配方括号中未包含的任何字符。

13、例如,正则表达式“ab”,除了字符“a”、“b”之外,其他的任何字符都可以与之匹配。 (3)a-z,1-9:匹配指定范围内的任何字符。 (4)a-z,1-9:匹配不在指定的范围内的任何字符。 (5)d:匹配任意一个数字字符,等效于0-9。 (6)D:匹配任意一个非数字字符,等效于0-9。 (7)s:匹配任何空白字符,包括空格、制表符等。 (8)S:匹配任何非空白字符。 (9)w:匹配任何英文字母、数字和下划线,等效于A-Za-z0-9_。 (10)W:匹配任何非英文字母和数字类字符,但不包括下划线,等效于A-Za-z0-9_。 (11).:匹配除换行符n之外的任何单字符。5.3 正则表达式的元

14、字符正则表达式的元字符常用的正则表达式常用的正则表达式 1匹配身份证号码:d15$|d18$ 2邮箱:w+w+.a-zA-Z2,3(.a-zA-Z2,3)?$; 3中国的邮政编码:d6$ 4匹配字符串中的中文字符:u4e00-u9fa5 5验证5到12位的qq号:d5,12$5.3 正则表达式的元字符正则表达式的元字符5.4 String对象与正则表达式对象与正则表达式n 1. match方法方法n String对象的match方法作用与RegExp对象的exec方法类似,它使用正则表达式模式对字符串进行搜索,并返回一个包含搜索结果的数组,传递给match方法的参数是一个RegExp对象实例,

15、即使用正则表达式作为match方法的参数去搜索字符串;而传递给exec方法的参数是一个String类型的对象实例,即使用正则表达式对象去搜索作为exec方法参数的字符串。array=stringObj.match(regExpObject);要求在一句英文中,搜索以要求在一句英文中,搜索以“th”开头的四个字符的单词,忽略大小开头的四个字符的单词,忽略大小写。写。5.4 String对象与正则表达式对象与正则表达式 var str=This is a dog,that is a cat; var regExp=/tha-z2/gi; var arr=str.match(regExp); doc

16、ument.write(arr); (1)正则表达式/tha-z2/gi的作用是全局匹配以th开头的4个字符,i表示不区分大小写。(2)match()方法使用正则表达式模式对字符串进行搜索,如果在字符串中没有搜索到匹配正则表达式模式的内容,则此方法返回值是null。5.4 String对象与正则表达式对象与正则表达式n 2. search方法方法n search方法利用使用正则表达式搜索,返回的是第一个匹配到的字符串在整个被搜索的字符串中的位置。如果没有找到匹配的子串则返回-1。如果是简单的搜索,可以用String对象的indexOf()方法。但对于较为复杂的模式匹配则需要使用search()

17、方法。index=stringObj.search(regExpObject);要求在一句英文中,搜索以要求在一句英文中,搜索以“th”开头,且有四个字符的单词在句子开头,且有四个字符的单词在句子中的位置,忽略大小写。中的位置,忽略大小写。5.4 String对象与正则表达式对象与正则表达式 var str=This is a dog,that is a cat; var regExp=/tha-z2/i; var index=str.search(regExp); document.write(index); 5.4 String对象与正则表达式对象与正则表达式n 3. replace方法方

18、法n replace方法使用正则表达式模式对字符串执行搜索,并对搜索到的内容用指定的字符串替换,返回值为包含替换后的内容的字符串对象。var newStr= stringObj.replace(regExpObject);要求删除用户输入中不必要的空格和要求删除用户输入中不必要的空格和“.”.”。5.4 String对象与正则表达式对象与正则表达式function checkInfo() var str=document.getElementById(info).value; var regExp=/. /g; document.getElementById(info).value=str.r

19、eplace(regExp,); (1 1)参数)参数g g用于全局替换,即所有找到的匹配都将被用于全局替换,即所有找到的匹配都将被替换。替换。(2 2)在正则表达式中,)在正则表达式中,“.”.”是元字符,匹配除换行是元字符,匹配除换行符符“n”n”之外的任何单字符,若要匹配之外的任何单字符,若要匹配“.”.”字符本字符本身,需要使用身,需要使用“.”.”。对注册页面进行格式的验证。对注册页面进行格式的验证。5.5 使用正则表达式验证表单使用正则表达式验证表单5.5 使用正则表达式验证表单使用正则表达式验证表单function checkName() /验证用户名var name=$(txt

20、Name).value;var name_prompt=$(span_name);var nameReg=/a-zA-Za-zA-Z0-93,15$/;if(!nameReg.test(name)name_prompt.innerHTML=错误,英文字母和数字组成的4-16位字符,以字母开头;return false;name_prompt.innerHTML=格式正确;return true;5.5 使用正则表达式验证表单使用正则表达式验证表单function checkNick()/验证昵称var nick=$(txtNick).value;var nick_prompt=$(span_n

21、ick);var nickReg=/u4e00-u9fa52,6$/;if(!nickReg.test(nick)nick_prompt.innerHTML=错误,由26个汉字组成;return false;nick_prompt.innerHTML=格式正确;return true;5.5 使用正则表达式验证表单使用正则表达式验证表单function checkEmail() /验证邮箱 var email=$(txtEmail).value; var email_prompt=$(span_email); var emailReg=/w+w+(.a-zA-Z2,3)1,2$/;if(!em

22、ailReg.test(email)email_prompt.innerHTML=错误,如或者;return false;email_prompt.innerHTML=格式正确;return true; 5.5 使用正则表达式验证表单使用正则表达式验证表单function checkPwd()/验证密码var pwd=$(txtPwd).value;var pwd_prompt=$(span_pwd); var pwdReg=/a-zA-Z0-94,10$/;if(!pwdReg.test(pwd)pwd_prompt.innerHTML=错误,由英文字母和数字组成的410位字符;return

23、 false;pwd_prompt.innerHTML=格式正确;return true;5.5 使用正则表达式验证表单使用正则表达式验证表单function checkConfirmPwd() /验证两次输入的密码是否一致var confirmPwd=$(txtConfirmPwd).value;var pwd=$(txtPwd).value;var confirmPwd_prompt=$(span_confirmPwd);if(pwd!=confirmPwd)confirmPwd_prompt.innerHTML=错误,两次输入的密码不一致;return false;confirmPwd_

24、prompt.innerHTML=密码正确;return true;5.5 使用正则表达式验证表单使用正则表达式验证表单 function checkPhone() /验证手机号码var phone=$(txtPhone).value;var phone_prompt=$(span_phone); var phoneReg=/(13|15|18)d9$/;if(!phoneReg.test(phone)phone_prompt.innerHTML=错误,手机号由11位数字组成,且以13开头;return false;phone_prompt.innerHTML=格式正确;return true;5.5 使用正则表达式验证表单使用正则表达式验证表单function checkBornDate() /验证出生日期var bornDate=$(txtBornDate).value;var born_prompt=$(span_Born); var bornReg=/(19d2)|(200d)-(0?1-9|10-2)-(0?1-9|1-2d|30-1)$/;if(!bornReg.test(bornDate)born_prom

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论