new RegExp(pattern, attributes);
引數 pattern 是一個字串,指定匹配模式或者正規表示式物件。引數 attributes 是一個可選的修飾性標誌,包含 "g" "i" 和 "m" 三個選項,分別設定全域性匹配、區分大小寫的匹配和多行匹配;如果引數 pattern 是正規表示式物件,則必須省略該引數。var r = new RegExp("a"); //構造最簡單的正規表示式 var s = "JavaScript != JAVA"; //定義字串直接量 var a = s.match(r); //呼叫正規表示式執行匹配操作,返回匹配的陣列 console.log(a); //返回陣列["a"] console.log(a.index); //返回值為1,匹配的下標位置
var r = new RegExp("a", "gi"); //設定匹配模式為全域性匹配,且不區分大小寫 var s = "JavaScript != JAVA"; //字串直接量 var a = s.match(r); //匹配查詢 console.log(a); //返回陣列["a", "a", "A", "A"]
var r = new RegExp("bw", "gi"); //構造正規表示式物件 var s = "JavaScript JAVA"; //字串直接量 var a = s.match(r); //匹配查詢 console.log(A); //返回陣列["j", "J"]在上面範例中,字串 "bw" 表示一個匹配模式,其中 “b" 表示單詞的邊界,"w" 表示任意 ASCII 字元,反斜槓表示跳脫序列。為了避免 Regular() 建構函式的誤解,必須使用“”替換所有“”字元,使用雙反斜槓表示斜槓本身的意思。
var r = new RegExp("bw", "gi"); //構造正規表示式 var r1 = new RegExp(r); //把正規表示式傳遞給RegExp()建構函式 var s = "JavaScript JAVA"; //字串直接量 var a = s.match(r); //匹配查詢 console.log(a); //返回陣列["j", "J"]把正規表示式直接量傳遞給 RegExp() 建構函式,可以進行型別封裝。
var a = new RegExp("bw", "gi"); //構造正規表示式物件 var b = new RegExp(a); //對正規表示式物件進行再封裝 var c = RegExp(a); //返回正規表示式直接量 console.log(a.constructor == RegExp); //返回true console.log(b.constructor == RegExp); //返回true console.log(c.constructor == RegExp); //返回true
/pattern/attributes
var r = /bw/gi; var s = "JavaScript JAVA"; var a = s,match(r); //直接呼叫正規表示式直接量 console.log(a); //返回陣列["j", "J"]
var r = new RegExp("a" + s + "b", "g"); //動態建立正規表示式 var r = /"a" + s + "b"/g; //錯誤的用法在上面範例中,對於正規表示式直接量來說,“"”和“+”都將被視為普通字元進行匹配,而不是作為字元與變數的語法識別符號進行連線操作。