- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
正则表达式的简要说明
正则表达式的简要说明
正则表达式的简要说明(参考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”)); //显示true
str = a bat, a Cat, a fAt baT, a faT cat;rs = /at/gi; //定义正则表达式
//找到所有匹配的字符串,保存在数组中返回。ss = str.match(rs);for(i=0;iss.length;i++){alert(ss[i]);}
//找到匹配字符串所在位置,这里输出是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,br); //把字符串中所有换行符转成br
下面的例子是查找所有配置bat、cat、fat的字符串var str = a bat, a Cat, a fAt baT, a faT cat;var re = /[bcf]at/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 = /[^bc]at/gi;results = str.match(re);alert(results.length); //返回3
查找一定范围内的字符串var str = num1, num2, num3, num4, num5, num6, num7, num8, num9;re = /num[1-4]/gi;results = str.match(re);alert(results.length);for(i=0;iresults.length;i++){alert(results[i]); //返回num1 num2 num3 num4}如果查找对象没有顺序的时候,看下面的效果var str = num1, num32, num5, num2, num4, num3, num7, num8, num9;re = /num[1-4]/gi;results = str.match(re);alert(results.length);for(i=0;iresults.length;i++){alert(results[i]); //返回num1 num3(注意不是nu
文档评论(0)