RegExp对象的构造器
new RegExp(pattern[, flags])
- pattern
- 正则表达式文本
- flags
- 该参数可以是下面几个值的任意组合:
g
全局匹配
i
忽略大小写
m
让开始和结束字符(^ 和 $)工作在多行模式(也就是,^ 和 $ 可以匹配字符串中每一行的开始和结束(行是由 \n 或 \r 分割的),而不只是整个输入字符串的最开始和最末尾处。
//下面的表达式是等价的
var re = /ab+c/i;
var re = new RegExp("ab+c", "i");
RegExp的构造器的属性
RegExp.prototype
- RegExp.prototype的初始值为RegExp的原型
RegExp的实例的属性
source
返回一个值为当前正则表达式对象的模式文本的字符串,该字符串不会包含正则字面量两边的斜杠以及任何的标志字符。
var regex = /fooBar/ig; console.log(regex.source); // "fooBar",不包含 /.../ 和 "ig"。
global
- 表明正则表达式是否使用了 "g" 标志。global 是一个正则表达式实例的只读属性。
global 的值是布尔对象,如果使用了 "g" 标志,则返回 true;否则返回 false。 "g" 标志意味着正则表达式应该测试字符串中所有可能的匹配。
var regex = new RegExp("foo", "g") console.log(regex.global) // true
ignoreCase
- 表明正则表达式是否使用了 "i" 标志。ignoreCase 是正则表达式实例的只读属性。
ignoreCase 的值是布尔对象,如果使用了"i" 标志,则返回 true;否则,返回 false。"i" 标志意味着在字符串进行匹配时,应该忽略大小写。
var regex = new RegExp("foo", "i") console.log(regex.ignoreCase) // true
multiline
- 表明正则表达式是否使用了 "m" 标志。multiline 是正则表达式实例的一个只读属性。
multiline 是一个布尔对象,如果使用了 "m" 标志,则返回 true;否则,返回 false。"m" 标志意味着一个多行输入字符串被看作多行。例如,使用 "m","^" 和 "$" 将会从只匹配正则字符串的开头或结尾,变为匹配字符串中任一行的开头或结尾。
var regex = new RegExp("foo", "m") console.log(regex.multiline) // true
lastIndex
- 正则表达式的一个可读可写的整型属性,用来指定下一次匹配的起始索引。
RegExp的原型对象的方法
RegExp.prototype.constructor
- RegExp.prototype.constructor 的初始值为内置 RegExp 构造器。
RegExp.prototype.exec(string)
为指定的一段字符串执行搜索匹配操作。它的返回值是一个数组或者 null。
var re = new RexExp("abc", "i"); var str = "abc16"; re.exec(str); // ["abc"]
RegExp.prototype.test(string)
执行一个检索,用来查看正则表达式与指定的字符串是否匹配。返回 true 或 false。
var re = new RexExp("abc", "i"); var str = "abc16"; re.test(str); // true
RegExp.prototype.toString()
返回一个表示该正则表达式的字符串。
var re = new RegExp("abc", "i"); console.log(re.toString()); // /abc/i
参考火狐标准库