JavaScript正则表达式基本语法..docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JavaScript正则表达式基本语法.

JavaScript 正则表达式上——基本语法 定义 JavaScript种正则表达式有两种定义方式,定义一个匹配类似?%XXX%?的字符串 1. 构造函数 var reg=new RegExp(%[^%]+%,g); 2. 字面量 var reg=/%[^%]%/g; g:?global,全文搜索,默认搜索到第一个结果接停止 i:?ingore case,忽略大小写,默认大小写敏感 m:?multiple lines,多行搜索 元字符 正则表达式让人望而却步以一个重要原因就是其转义字符太多了,组合非常之多,但是正则表达式的元字符(在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符)并不多 元字符:( [ { \ ^ $ | ) ? * + . 并不是每个元字符都有其特定意义,在不同的组合中元字符有不同的意义,分类看一下 预定义特殊字符 字符 含义 \t 水平制表符 \r 回车符 \n 换行符 \f 换页符 \cX 与X对应的控制字符(Ctrl+X) \v 垂直制表符 \0 空字符 ? ? ? ? ? ? ? 字符类 一般情况下正则表达式一个字符(转义字符算一个)对应字符串一个字符,表达式?ab\t?的含义是 但是我们可以使用元字符[]来构建一个简单的类,所谓类是指,符合某些特征的对象,是一个泛指,而不是特指某个字符了,我们可以使用表达式 [abc] 把字符a或b或c归为一类,表达式可以匹配这类的字符 元字符[]组合可以创建一个类,我们还可以使用元字符^创建反向类/负向类,反向类的意思是不属于XXX类的内容,表达式?[^abc]?表示不是字符a或b或c的内容 范围类 按照上面的说明要是我们希望匹配单个数字那么表达式是这样的 [0123456789] 如果是字母那么。。。,好麻烦,正则表达式还提供了范围类,我们可以使用 x-y来连接两个字符表示从x到y的任意字符,这是个闭区间,也就是说包含x和ybenshen,这样匹配小写字母就很简单了 [a-z] 要是想匹配所有字母呢?在[]组成的类内部是可以连写的,我们还可以这样写?[a-zA-Z] 预定义类 刚才使用正则我们创建了几个类,来表示数字,字母等,但这样写也很是麻烦,正则表达式为我们提供了几个常用的预定义类来匹配常见的字符 字符 等价类 含义 . [^\n\r] 除了回车符和换行符之外的所有字符 \d [0-9] 数字字符 \D [^0-9] 非数字字符 \s [ \t\n\x0B\f\r] 空白符 \S [^ \t\n\x0B\f\r] 非空白符 \w [a-zA-Z_0-9] 单词字符(字母、数字、下划线) \W [^a-zA-Z_0-9] 非单词字符 ? ? ? ? ? ? ? ? 有了这些预定义类,写一些正则就很方便了,比如我们希望匹配一个 ab+数字+任意字符 的字符串,就可以这样写了?ab\d. ? 边界 正则表达式还提供了几个常用的边界匹配字符 字符 含义 ^ 以xx开头 $ 以xx结尾 \b 单词边界,指[a-zA-Z_0-9]之外的字符 \B 非单词边界 ? ? ? ? ? ? ? ? 看个不负责任的邮箱正则匹配(切勿模仿,小括号后面会讲到)?\w+@\w+\.(com)$ 量词 之前我们介绍的方法都是一一匹配的,如果我们希望匹配一个连续出现20次数字的字符串难道我们需要写成这样 \d\d\d\d... 为此正则表达式引入了一些量词 字符 含义 ? 出现零次或一次(最多出现一次) + 出现一次或多次(至少出现一次) * 出现零次或多次(任意次) {n} 出现n次 {n,m} 出现n到m次 {n,} 至少出现n次 {,m} 最多出现m次 ? ? ? ? ? ? ? ? 看几个使用量词的例子 \w+\bByron?匹配 单词+边界+Byron (/\w+\bByron).test(Hi Byron); //true (/\w+\bByron).test(Welcome Byron); //true (/\w+\bByron).test(Byron); //false ?\d+\.\d{1,3}?匹配三位小数的数字 ?贪婪模式与非贪婪模式 看了上面介绍的量词,也许爱思考的同学会想到关于匹配原则的一些问题,比如{3,5}这个量词,要是在句子种出现了十次,那么他是每次匹配三个还是五个,反正3、4、5都满足3~5的条件,量词在默认下是尽可能多的匹配的,也就是大家常说的贪婪模式 123456789.match(/\d{3,5}/g); //[12345, 6789] ?既然有贪婪模式,那么肯定会有非贪婪模式,让正则表达式尽可能少的匹配,也就是说一旦成功匹配不不再继续尝试,

文档评论(0)

bhzs + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档