正则表达式的简要说明.doc_第1页
正则表达式的简要说明.doc_第2页
正则表达式的简要说明.doc_第3页
正则表达式的简要说明.doc_第4页
正则表达式的简要说明.doc_第5页
全文预览已结束

下载本文档

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

文档简介

正则表达式的简要说明正则表达式的简要说明(参考Nicholas C. Zakas的Javascript高级程序设计ISBN 7-115-15209-8)什么是正则表达式?用来表示指定的字符或者字符串在另一个字符串出现的情况。比如可用于去除字符串中的空格,典型如Trim()函数;检查金额字符串的有效性等等。怎么用呢?能否举个例子呢?首先要定义一个正则表达式,有2种办法Var re = new RegExp(“cat”);或Var re = /cat/还可以指定几个参数。Var re = new RegExp(“cat”,gi);或Var re = /cat/gi;参数g是指找到全部匹配cat的字符串,参数i是不区分大小写。下面介绍几个简单的使用方法,方便理解。测试字符串中是否有匹配的值alert(re.test(“cat 123”); /显示truestr = a bat, a Cat, a fAt baT, a faT cat;rs = /at/gi; /定义正则表达式/找到所有匹配的字符串,保存在数组中返回。ss = str.match(rs);for(i=0;iss.length;i+)alert(ssi);/找到匹配字符串所在位置,这里输出是3alert(str.search(/at/);/替换指定的字符串,下面2个方法都是有效的。alert(str.replace(bat,bbb);alert(str.replace(/bat/,bbb);如果用正则,还可以加上参数gi就可以不分大小写替换所有配置的字符串。alert(str.replace(/bat/gi,bbb);如果你想查找的字符是一些符号的话,比如?(问号)、*(星号)等,定义正则表达式要这样var re = /?/;或var re = new RegExp(?); /注意要有2个为什么要这样呢?因为正则表达式中有一些“元字符”,这些元字符可以帮助实现更加复杂的功能,后面会介绍到。这些元字符有:( ) $ | ? * + .要注意区别,这些字符在你的正则表达式中是用来做查找的字符,还是用来做参数用的。正则表达式还有一些特殊字符,t 制表符n 换行符r 回车符f 换页符a alert字符e escape字符cX 与X相对应的控制字符b 回退字符v 垂直制表符0 空字符这些有什么用呢?比如我自己曾经遇到一个问题,页面上有一个textarea收集长文本,然后我要把这个长文本放到一个div.innerText中,但原来的换行都显示成空格。这个问题就可以用下面的正则来解决了,div.innerHtml = sLongText.replace(/n/g,); /把字符串中所有换行符转成下面的例子是查找所有配置bat、cat、fat的字符串var str = a bat, a Cat, a fAt baT, a faT cat;var re = /bcfat/gi; /注意中括号的作用var results = str.match(re);alert(results.length); /返回6查找所有除了bat、cat的其他字符开头+at的字符串var str = a bat, a Cat, a fAt baT, a faT cat 1at;re = /bcat/gi;results = str.match(re);alert(results.length); /返回3查找一定范围内的字符串var str = num1, num2, num3, num4, num5, num6, num7, num8, num9;re = /num1-4/gi;results = str.match(re);alert(results.length);for(i=0;iresults.length;i+)alert(resultsi); /返回num1 num2 num3 num4如果查找对象没有顺序的时候,看下面的效果var str = num1, num32, num5, num2, num4, num3, num7, num8, num9;re = /num1-4/gi;results = str.match(re);alert(results.length);for(i=0;iresults.length;i+)alert(resultsi); /返回num1 num3(注意不是num32) num2 num4 num3有些常用的匹配模式都有一个简单的代替方法。.(点) 相当于 nr 所有字符(除换行和回车以外)d 相当于 0-9 数字D 0-9 非数字字符s 空白字符S 非空白字符w 单词字符(注意配置的是字符,也就是一个一个的。包括字母、数字、下划线)W 非单词字符var str = apple 01 , able10 , foo433 , barr211 , test300 ;re = /ddd/g;results = str.match(re);alert(results.length);for(i=0;iresults.length;i+)alert(resultsi); /返回433, 211, 300 这3个值如果把正则改为re = /dddd/g; 也就找连续的4个数字的字符创,结果会是什么呢?results = str.match(re); /results = null 也就是没有匹配的。所以要注意控制match的返回值,如果还是上面的代码这个时候就会出错了。用几个d可以匹配一定长度的数字字符串,其实还有一种办法。先说说量词的概念-指定某个模式出现的次数。? 出现零次或一次* 出现多次+ 出现多次,至少一次n 出现n次n,m 至少出现n次,但不超过m次n, 至少出现n次var str = bread, read, red;re = /b?rea?d/g; /覆盖的单词有bread,bred, read, red,results = str.match(re);alert(results.length);for(i=0;iresults.length;i+)alert(resultsi); /返回这3个字符串re = /b?rea?d/g;也可以用另一种形式 re = /b0,1rea0,1d/g; 两者的效果是一样的。还记得中括号的作用吗?

温馨提示

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

评论

0/150

提交评论