轻松搞定javascript十一章正则表达式详解篇_第1页
轻松搞定javascript十一章正则表达式详解篇_第2页
轻松搞定javascript十一章正则表达式详解篇_第3页
轻松搞定javascript十一章正则表达式详解篇_第4页
轻松搞定javascript十一章正则表达式详解篇_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

北京传智播客教育轻松搞定javascript-正则表达式(2)讲师:韩顺平

内容介绍—正则表达式详解1.正则表达的概念2.正则表达式对象(RegExp对象)3.RegExp的方法4.String对象中与正则表达式有关的方法5.RegExp的属性6.正则表达式的语法7.实际应用案例主讲韩顺平学习目标1.熟练使用正则表达式主讲韩顺平前面讲过了,不再赘述,请参看js第十章正则表达式的概念■

基本概念主讲韩顺平正则表达式一览表正则表达式几个案例主讲韩顺平RegExp对象表示正则表达式,它是对字符串执行模式匹配的强大工具。创建RegExp对象有以下几种方法:①隐式创建RegExp对象它的创建形式是/pattern/[flag]这种形式;说明:pattern是必须的,flag是可以选择的。pattern就是按照正则表达式的模式进行编写,flag是可以选择的,它主要有以下几种标识符:g全局标志

i忽略大小写

m用作多行标志案例

reg01.htm怎么理解

g全局标志,简单的说就是在检索某个字符串的时候,是针对整个字符串来检索的,这个可以通过一个小测试来说明正则表达式对象■

正则表达式对象主讲韩顺平②显示的创建RegExp对象它的创建形式是newRegExp(“pattern”[,”flag”]);说明:pattern是必须的,flag是可以选择的。pattern就是按照正则表达式的模式进行编写,flag是可以选择的,它主要有以下几种标识符:

g全局标志

i忽略大小写

m用作多行标志比如:varmyReg=newRegExp("\\d{3}","gi");案例

reg01.htm正则表达式对象■

正则表达式对象☞特别说明,我一般习惯使用隐式创建正则表达式对象主讲韩顺平我们一起来看看RegExp对象有哪些常用的方法。exec()检索字符串中指定的值,并返回值(找不到返null)。test()检索字符串中指定的值,返回true或false案例

reg02.htmRegExp对象方法■

RegExp对象方法

主讲韩顺平我们一起来看看有哪些常用的方法。match()

语法格式为:match(reExp)。与RegExp对象的exec方法类似,它使用正则表达式模式对字符串执行搜索,并返回一个包含搜索结果的数组。search()语法格式为:search(reExp),它返回使用正则表达式搜索时,第一个匹配的字符串在整个被搜索的字符串中的位置。replace() 语法格式为:replace(rgExp,replaceText),使用正则表达式模式对字符串执行搜索,并对搜索到的内容用指定的字符替换,返回值为包含替换后的内容的字符串对象。split() 把字符串分割为字符串数组。用法split(“按什么字符分割”),也可以用split(regExp).案例

reg03.htmstring对象与正则表达式有关的方法■

string对象与正则表达式有关的方法主讲韩顺平

我们一起来实际运用一下这些个方法案例

reg04.htmstring对象与正则表达式有关的方法■

几个小案例

主讲韩顺平

RegExp对象属性分为静态属性和实例属性,所谓静态属性是指:可以通过RegExp就可以访问。所谓实例属性是指:通过RegExp对象实例才能访问使用。index

是当前表达式模式首次匹配内容的开始位置,从0开始计数。其初始值为-1,每次成功匹配时,index属性都会随之改变lastindex 是当前表达式模式首次匹配内容中最后一个字符的下一个位置,从0开始计数input 返回当前所作用的字符串,leftContext 是当前表达式模式最后一个匹配字符串左边的所有内容rightContext 是当前表达式模式最后一个匹配字符串右边的所有内容案例

reg05.htm我们一起来看看RegExp有哪些静态属性RegExp对象的属性

RegExp对象的属性

主讲韩顺平global

返回创建RegExp对象实例时指定的global标志(g)的状态,(true,false)ignoreCase

是返回创建RegExp对象实例时指定的ignoreCase标志(i)的状态(true,false)multiLine 返回创建RegExp对象实例时指定的multiLine标志(m)的状态,true或者falsesource 返回创建RegExp对象实例时指定的表达式文本字符串案例

reg05.htm◆下面的是RegExp对象的实例属性RegExp对象的属性

RegExp对象的属性

主讲韩顺平如果你认为正则表达式只能检索固定的字符串或是连续的几个数字,那您就太小看正则表达式了,请看下面一个问题:给你一个字符串(或一篇文章),请你找出所有四个数字连在一起的子串,并且这四个数字要满足①第一位与第四位相同②第二位与第三位相同,比如1221,5775,...给你一个字符串,请你验证该字符串是否是一个电子邮件?给你一个字符串,请你验证该字符串是否是一个身份证?给你一个字符串,请你验证该字符串是否是一个电话号码?正则表达式的语法--子表达式、捕获、反向引用■

子表达式、捕获、反向引用

主讲韩顺平要解决前面的问题,我们需要了解正则表达式的几个概念:①子表达式我们可以用圆括号组成一个比较复杂的匹配模式,那么一个圆括号的部分我们可以看作是一个子表达式。②捕获多个子表达式所匹配到的内容按顺序出现在内存的缓冲区中,这个我们称为捕获③反向引用圆括号的内容被捕获后,可以在这个括号后被使用,从而写出一个比较实用的匹配模式,这个我们称为反向引用正则表达式的语法--子表达式、捕获、反向引用■

子表达式、捕获、反向引用

主讲韩顺平看几个小案例要匹配两个连续的数字:(\d)\1要匹配五个连续的数字:(\d)\1{4}要匹配个位与千位相同,十位与百位相同的数5225,1551,

可以这样写:(\d)(\d)\2\1案例

reg06.htm请思考下面的问题:请在字符串中检索商品编号,形式如:12321-333999111这样的号码,要求满足前面是一个五位数,然后一个-号,然后是一个九位数,连续的每三位要相同正则表达式的语法--子表达式、捕获、反向引用■

子表达式、捕获、反向引用

主讲韩顺平如果要想灵活的运用正则表达式,必须了解其中各种元字符的功能,元字符从功能上大致分为:限定符选择匹配符分组组合和反向引用符特殊字符字符匹配符定位符正则表达式的语法--元字符详解■

元字符主讲韩顺平用于指定其前面的字符和组合项连续出现多少次{n}说明:n表示出现的次数,比如a{3},1{4},(\d){2}但是这里要注意一点,1{3}去匹配1111111的话,会得到什么结果呢?

案例

reg07.htm正则表达式的语法--元字符详解■

元字符-限定符

主讲韩顺平{n,m}说明:n表示至少出现的n次最多m次,比如a{3,4},1{4,5},(\d){2,5}我们看看1{3,4}去匹配1111111的话,会得到什么结果呢?1111111js在默认匹配中使用的是贪婪匹配的原则,即尽可能匹配多的字符串,这点在上面的案例中体现的很清楚 案例

reg07.htm正则表达式的语法--元字符详解■

元字符-限定符

主讲韩顺平+说明:+表示出现1次到任意多次,比如/a+/gi,/1+/gi,/(\d)+/gi我们看看/1+/gi去匹配1111111的话,会得到什么结果呢? 案例

reg07.htm正则表达式的语法--元字符详解■

元字符-限定符

主讲韩顺平*说明:*表示出现0次到任意多次,比如/a*/gi,/1*/gi,/(\d)*/gi我们看看/a1*/gi去匹配a111的话,会得到什么结果呢? 案例

reg07.htm正则表达式的语法--元字符详解■

元字符-限定符

主讲韩顺平?说明:?表示出现0次到1次,比如/a?/gi,/1?/gi,/(\d)?/gi我们看看/a1?/gi去匹配a2111的话,会得到什么结果呢?案例

reg07.htm正则表达式的语法--元字符详解■

元字符-限定符

主讲韩顺平[a-z]说明:[a-z]表示可以匹配a-z中任意一个字符,比如

/[a-z]/gi,/[a-z]{2}/gi我们看看/[A-Z]/gi去匹配a11c8会得到什么结果? 案例

reg08.htm正则表达式的语法--元字符详解■

元字符-字符匹配符

主讲韩顺平[A-Z]表示可以匹配A-Z中任意一个字符。[0-9]表示可以匹配0-9中任意一个字符。这个就不举例说明了.正则表达式的语法--元字符详解■

元字符-字符匹配符

主讲韩顺平[^a-z]说明:[^a-z]表示可以匹配不是a-z中的任意一个字符,比如

/[a-z]/gi,/[a-z]{2}/gi我们看看/[a-z]/gi去匹配a11c8会得到什么结果?用/[^a-z]{2}/gi又会得到什么结果呢? 案例

reg08.htm正则表达式的语法--元字符详解■

元字符-字符匹配符

主讲韩顺平[^A-Z]表示可以匹配不是A-Z中的任意一个字符。[^0-9]表示可以匹配不是0-9中的任意一个字符。这个就不举例说明了.正则表达式的语法--元字符详解■

元字符-字符匹配符

主讲韩顺平[abcd]表示可以匹配abcd中的任意一个字符。[^abcd]表示可以匹配不是abcd中的任意一个字符。当然上面的abcd你可以根据实际情况修改,以适应你的需求。案例

reg08.htm正则表达式的语法--元字符详解■

元字符-字符匹配符

主讲韩顺平\d表示可以匹配0-9的任意一个数字,相当于[0-9]。\D表示可以匹配不是0-9中的任意一个数字,相当于[^0-9]\w匹配任意英文字符、数字和下划线,相当于[a-zA-Z0-9_]\W相当于[^a-zA-Z0-9_]是\w刚好相反.\s匹配任何空白字符(空格,制表符等)\S匹配任何非空白字符,和\s刚好相反.匹配出\n之外的所有字符,如果要匹配.本身则需要使用\.思考题:请编写一个正则表达式,可以匹配任意三个连续的字符案例

reg08.htm正则表达式的语法--元字符详解■

元字符-字符匹配符

主讲韩顺平在字符串中,可能你会遇到比较特殊的字符,如下图,针对这种情况,正则表达式通过\xn的方式来匹配\x19\xn的x是固定的,n是一个十六进制的数,比如\x21=>16*2+1=33就是去匹配ascii码表中十六进制是21的字符,查表可知就是! 案例

reg09.htm实际上,我们也可以直接通过/\/gi的方式来匹配某些不可见特殊字符正则表达式的语法--元字符详解■

元字符-特殊字符匹配

主讲韩顺平在字符串中,可能你会遇到比较特殊的字符,如下图: 正则表达式的语法--元字符详解■

元字符-特殊字符匹配

主讲韩顺平定位符用于规定要匹配的字符串出现的位置,比如在字符串的开始还是在结束的位置,这个也是相当有用的,必须掌握。^符号说明:匹配目标字符串的开始位置。比如/^han/gi去匹配“hanshunpinghanhan”,我们看看会得到什么结果?$符号说明:匹配目标字符串的结束位置。比如/han$/gi去匹配“hanshunpinghanhanuu”,我们看看会得到什么结果? 案例

reg10.htm正则表达式的语法--元字符详解■

元字符-定位符

主讲韩顺平\b符号说明:匹配目标字符串的边界。这个字符串的边界,有点不好理解,我给大家举一个实例说明,比如/han\b/gi去匹配“hanshunpingsphannnhan”,我们会匹配到“hanshunpingsphannnhan”,所以这里说的字符串的边界指的是子串间有空格,或者是目标字符串的结束位置,特别注意没有目标字符串的开始位置\B符号说明:匹配目标字符串的非边界。这个和\b的含义刚刚相反,不再赘述,请看一个案例比如/han\B/gi去匹配“hanshunpingsphannnhan”,我们会匹配到“hanshunpingsphannnhan”案例

reg10.htm正则表达式的语法--元字符详解■

元字符-定位符

主讲韩顺平◆\符号说明:在我们使用正则表达式去检索某些特殊字符的时候,需要用到转义符号,否则检索不到结果,甚至会报错的。案例:用/$/gi去匹配“abc$(”

会怎样?

用/(/gi去匹配“abc$(”

会怎样?案例

reg11.htm正则表达式的语法--元字符详解■

元字符-转义符号\

主讲韩顺平◆需要用到转义符号的字符有以下:.*+()$/\?[]^{}案例

reg11.htm正则表达式的语法--元字符详解■

元字符-转义符号\

主讲韩顺平有时候,我们在匹配某个字符串的时候是选择性的,即:既可以匹配这个,又可以匹配那个,这时你需要用到选择匹配符号|

案例

reg12.htm选择匹配符号还是比较好理解的,我们通过一个案例说明:用\(han|韩|含)\gi去匹配“hanshunping韩顺平”,会得到什么结果?正则表达式的语法--元字符详解■

元字符-选择匹配符

主讲韩顺平陆游陆游曾说:纸上得来总觉浅,绝知此事要躬行。前面我要已经掌握正则表达式的详细语法,现在我们来实际运用一下。案例

reg13.htm验证电子邮件格式是否合法:只能有一个@@前面是用户名,可以是a-

温馨提示

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

评论

0/150

提交评论