本對象包含正則表達(dá)式模式以及表明如何應(yīng)用模式的標(biāo)志。
re = /pattern/[flags]
re = new RegExp("pattern",["flags"])
不要將正則表達(dá)式對象跟全局 RegExp 對象混淆。盡管聽起來像是一回事,但它們是截然不同的。正則表達(dá)式對象的屬性只包含一個(gè)正則表達(dá)式的信息,而全局 RegExp 對象的屬性包含了不斷更新的每一個(gè)匹配出現(xiàn)的信息。
正則表達(dá)式對象保存用于查找字符串中的字符組合時(shí)的模式。創(chuàng)建正則表達(dá)式對象后,或者它被傳遞給字符串方法,或者字符串被傳遞給一個(gè)正則表達(dá)式方法。有關(guān)最近進(jìn)行查找的信息被保存在全局 RegExp 對象中。
當(dāng)預(yù)先知道查找字符串時(shí)用語法 1。當(dāng)查找字符串經(jīng)常變動(dòng)或不知道時(shí)用語法 2,比如由用戶輸入得到的字符串。
在使用前 pattern 參數(shù)被編譯為內(nèi)部格式。對語法 1 來說,pattern 在該腳本被裝載時(shí)被編譯。對語法 2 來說,pattern 在使用前,或調(diào)用 compile 方法時(shí)被編譯。
下面的示例創(chuàng)建一個(gè)包含正則表達(dá)式模式及相關(guān)標(biāo)志的對象(re),向您演示正則表達(dá)式對象的用法。在本例中,作為結(jié)果的正則表達(dá)式對象又用于 match 方法中:
function MatchDemo(){
var r, re; // 聲明變量。
var s = "The rain in Spain falls mainly in the plain";
re = new RegExp("Spain","i"); // 創(chuàng)建正則表達(dá)式對象。
r = s.match(re); // 在字符串 s 中查找匹配。
return(r); // 返回匹配結(jié)果。
}
compile 方法 | exec 方法 | test 方法