深入浅析深入浅析JavaScript中的中的RegExp对象对象
正则表达式(regular expression)是一种表达文本模式(即字符串结构)的方法,有点像字符串的模板,常常
用作按照“给定模式”匹配文本的工具。下面通过本文给大家分享js 中的regexp对象,需要的朋友参考下吧
JS中的正则对象
概述概述
正则表达式(regular expression)是一种表达文本模式(即字符串结构)的方法,有点像字符串的模板,常常用作按照“给定
模式”匹配文本的工具。比如,正则表达式给出一个 Email 地址的模式,然后用它来确定一个字符串是否为 Email 地址。
JavaScript 的正则表达式体系是参照 Perl 5 建立的。
新建正则表达式有两种方法。一种是使用字面量,以斜杠表示开始和结束。
var regex = /xyz/;
另一种是使用 RegExp 构造函数。
var regex = new RegExp('xyz');
上面两种写法是等价的,都新建了一个内容为xyz的正则表达式对象。它们的主要区别是,第一种方法在编译时新建正则表达
式,第二种方法在运行时新建正则表达式。
RegExp 构造函数还可以接受第二个参数,表示修饰符(详细解释见下文)。
var regex = new RegExp('xyz', "i");
// 等价于
var regex = /xyz/i;
上面代码中,正则表达式/xyz/有一个修饰符i。
这两种写法——字面量和构造函数——在运行时有一个细微的区别。采用字面量的写法,正则对象在代码载入时(即编译时)
生成;采用构造函数的方法,正则对象在代码运行时生成。考虑到书写的便利和直观,实际应用中,基本上都采用字面量的写
法。
正则对象生成以后,有两种使用方式:
正则对象的方法:将字符串作为参数,比如regex.test(string)。
字符串对象的方法:将正则对象作为参数,比如string.match(regex)。
这两种使用方式下面都会介绍。
正则对象的属性和方法正则对象的属性和方法
属性属性
正则对象的属性分成两类。
一类是修饰符相关,返回一个布尔值,表示对应的修饰符是否设置。
ignoreCase:返回一个布尔值,表示是否设置了i修饰符,该属性只读。
global:返回一个布尔值,表示是否设置了g修饰符,该属性只读。
multiline:返回一个布尔值,表示是否设置了m修饰符,该属性只读。
var r = /abc/igm;
r.ignoreCase // true
r.global // true
r.multiline // true
另一类是与修饰符无关的属性,主要是下面两个。
lastIndex:返回下一次开始搜索的位置。该属性可读写,但是只在设置了g修饰符时有意义。
source:返回正则表达式的字符串形式(不包括反斜杠),该属性只读。
var r = /abc/igm;
r.lastIndex // 0
r.source // "abc"
test()
正则对象的test方法返回一个布尔值,表示当前模式是否能匹配参数字符串。
评论0
最新资源