【js学习笔记-063】RegExp对象

来源:互联网 发布:mysql从入门到精通下载 编辑:程序博客网 时间:2024/05/29 18:20

正则表达式是通过Regexp对象来表示的。除了RegExp()构造函数之外,RegExp对象还支持三个方法和一些属性。

构造函数有两个参数,第一个是正则表达式的主体部分,也就是直接量两条斜线之间的文本。

第二个参数是表达式修饰符。不过只能传入修饰符igm或者它们的组合。

Var zipcode = new RegExp(“\\d{5}”,”g”);

当需要动态创建正则表达式的时候,这种情况往往没办法通过写死代码中的正则表达式直接量来实现。例如检索字符串由用户输入的。

RegExp的属性

sorce:只读 包含正则表达式的文本

global:只读 布尔值,是否带修饰符 g

ignoreCase 只读 布尔 是否带i

multiline:是一个只读布尔,是否带m

lastIndex 是一个可读/写的整数。如果匹配模式带有g修饰,它存储在整个字符串下次检索的开始位置,这个属性会被exec()和text()方法用到。

RegExp的方法

exec()

和String的match非常像。String方法的参数是一个RegExp对象。而RegExp方法的参数是一个字符串,简言之,就是在字符串中检索。没找到任何匹配,返回null,但如果找到一个匹配,它将返回一个数组。就像match()方法为非全局检索返回的数组一样。属性index包含了发生匹配的字符位置,属性input引用的是正在检索的字符串。和match()方法不同,不管正则表达式是否具有全局修饰符g,exec()都会返回一样的数组。match返回由匹配结果组成的数组。exec()总是返回一个匹配结果,并提供关于本次匹配的完整信息。当exec()使用g时它将把当前正则表达式对象的lastIndex属性设置为紧挨着匹配子串的字符位置。当同一个正则表达式第二次调用exec()时,它将从lastIndex属性指示的字符处开始检索。如果没有发现任何匹配结果,它将会重置lastIndex为0。

 

test()

如果包含正则表达式的一个匹配结果,返回true。否则false

调用test()和调用exec()等价,当exec()的返回结果不是null时,test()返回true。

原创粉丝点击