javascript中正则表达式相关的方法使用详解
来源:互联网 发布:域名备案批量查询工具 编辑:程序博客网 时间:2024/05/17 07:39
一,要使用正则表达式相关的方法,首先得搞清楚正则表达式的基本用法,摘自百度百科:
二,javascript中正则表达式对于表单的验证和字符串的处理是非常重要的,与正则表达式相关的常用方法有:
1,正则对象的方法:
1,1,test():用来表示某个字符串是否匹配正则表达式,如果匹配返回true,否则返回false
1,2,exec():exec() 方法用来检索字符串中的指定正则表达式的值,返回结果是一个对象,该对象包含了所有匹配的值。如果没有发现匹配,则返回 null
var reg=/(1a|2b).com/; //用来匹配所有包含1a.com 或则2b.com的字符串var str="2221a.com456";function execReg(){var result=reg.exec(str);alert(result[0]); //1a.com}在debug模式下可以看到返回的结果:
可以看到返回的结果中包含一个数组,用来存放匹配的结果 :“1a.com”是整个匹配的结果,“1a”则是第一个括号中(1a|2b)的匹配结果,input表示字符串的内容,index表示从字符串的哪个位置开始匹配。
稍微修改一下,可以看到结果如下:
结果和上面类似,0处是整个匹配结果,1处表示第一个括号匹配结果,2处字符串是第2个括号匹配结果,所以整个result:由012三处的字符串逗号连接的结果
2,字符串中与正则表达式相关的方法:
2.1 string.match(pattern) :此方法与正则表达式的exec()方法返回结果一样,也是一个对象,包含的属性一样:
<span style="font-family:Microsoft Yahei, Helvetica Neue, Helvetica, Arial, sans-serif;"><span></span>var reg=/(1a|2b)(3c|4d).com/; <span></span>var str="2221a3c.com456";<span></span>function matchReg(){<span></span>var result=str.match(reg);<span></span>alert(result);<span></span>}</span>在debug模式下看到返回的结果:
与上面正则对象的exec()方法返回结果一致
2.2string.replace(pattern,string) :将字符串中与正则表达式匹配的部分换成新的字符串:
<span style="font-family:Microsoft Yahei, Helvetica Neue, Helvetica, Arial, sans-serif;"><span></span>var reg=/(1a|2b)(3c|4d).com/; <span></span>var str="2221a3c.com456";<span></span>function replaceReg(){<span></span>var result=str.replace(reg,"***");<span></span>alert(result); //222***456<span></span>}</span>2.3string.search(pattern); :找到与字符串匹配的初始位置
<span style="font-family:Microsoft Yahei, Helvetica Neue, Helvetica, Arial, sans-serif;"><span></span>var reg=/(1a|2b)(3c|4d).com/; <span></span>var str="2221a3c.com456";<span></span>function searchReg(){<span></span>var result=str.search(reg);<span></span>alert(result); //3<span></span>}</span>2.4string.split();:从匹配出将元字符串分割:得到的结果为字符串数组(使用的时候一定要注意括号“()”带来的影响):
<span style="font-family:Microsoft Yahei, Helvetica Neue, Helvetica, Arial, sans-serif;">var reg=/(1a|2b)(3c|4d).com/; var str="2221a3c.com456";function splitReg(){var result=str.split(reg);alert(result); //3}</span>得到的结果:
可见,由于“()”括号的影响“1a”和“3c”都保留下来了;
如果我们去掉括号的影响:
<span style="white-space:pre"></span>var reg=/(?:1a|2b)(?:3c|4d).com/; <span style="white-space:pre"></span>var str="2221a3c.com456";<span style="white-space:pre"></span>function splitReg(){<span style="white-space:pre"></span>var result=str.split(reg);<span style="white-space:pre"></span>alert(result); //<span style="white-space:pre"></span>}得到的结果:
就是消除整个匹配后得到的字符串数组了,所以使用的时候要根据需要考虑到底需不需要保留“()”的影响。
三,使用正则表达式相关方法的注意事项:
3.1在使用string.replace(pattern,string);的时候可以使用“$n”表示pattern中的第n个“()”的匹配
<span style="white-space:pre"></span>var reg=/(1a|2b)(3c|4d).com/; <span style="white-space:pre"></span>var str="2221a3c.com456";<span style="white-space:pre"></span>function replaceReg(){<span style="white-space:pre"></span>var result=str.replace(reg,"$1$1"); //使用reg中的第一个括号中的正则匹配作为替代<span style="white-space:pre"></span>alert(result); //2221a1a456<span style="white-space:pre"></span>}3.2要考虑到使用模式给匹配结果带来的影响:
<span style="white-space:pre"></span>var reg=/aa/; <span style="white-space:pre"></span>var str="aa11aa";<span style="white-space:pre"></span>function matchReg(){<span style="white-space:pre"></span>var result=str.match(reg);<span style="white-space:pre"></span>alert(result); // aa<span style="white-space:pre"></span>}
<span style="white-space:pre"></span>如果使用全局模式:
<span style="white-space:pre"></span>var reg=/aa/; <span style="white-space:pre"></span>var str="aa11aa";<span style="white-space:pre"></span>function matchReg(){<span style="white-space:pre"></span>var result=str.match(reg);<span style="white-space:pre"></span>alert(result); // aa,aa<span style="white-space:pre"></span>}
- javascript中正则表达式相关的方法使用详解
- 详解Javascript中正则表达式的使用
- 详解Javascript中正则表达式的使用
- 详解Javascript中正则表达式的使用
- 详解Javascript中正则表达式的使用
- javaScript正则表达式相关函数的使用
- javascript 正则表达式相关方法
- javascript中正则表达式详解
- javascript正则表达式使用详解
- javascript正则表达式使用详解
- javascript正则表达式使用详解
- javascript正则表达式使用详解
- JavaScript正则表达式使用详解
- Javascript中正则 表达式的使用
- JAVASCRIPT中 正则表达式的使用
- Javascript中正则表达式的使用介绍
- Linux中正则表达式的使用详解
- javascript中使用正则表达式
- SVN linux 命令
- 软工文档-机房收费系统:概要设计说明书
- C语言程序设计之基础(变量、运算符、数组、函数)
- [Nhibernate]一级缓存
- 修改mysql字符编码出现Job failed to start解决办法
- javascript中正则表达式相关的方法使用详解
- 机器学习实战之k-近邻算法(3)---如何可视化数据
- XML基础
- SpringMVC系列(一)核心:处理请求流程
- Using JDBC to Execute Stored Procedures
- Hadoop 新 MapReduce 框架 Yarn 详解
- sysfs文件系统
- Android - Android操作系统结构
- 什么是IaaS, PaaS和SaaS及其区别