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
參考火狐標準庫