以下這些不是正則表達式的新增對象請參閱對應的JavaScript對象的屬性 $_屬性 參考input $*屬性
參考multiline $&屬性 參考lastMatch $+屬性 參考lastParen $`屬性
參考leftContext $'屬性 參考rightContext compile方法 在腳本運行期間編譯正則表達式對象
屬于RegExp的方法 在JavaScript 1.2, NES 3.0以上版本提供 語法:
regexp.compile(pattern[, flags]) 以數: regexp 正則表達式的名稱,可以是變量名或文字串。
pattern 正則表達式的定義文本。 flags 如果指定的話,可以是下面其中的一個: "g": 匹配所有可能的字串
"i": 忽略大小寫 "gi": 匹配所有可能的字串及忽略大小寫 描述:
使用compile方法來編譯一個正則表達式 created with the RegExp constructor function。這樣
就強制正則表達式只編譯一次,而不是每次遇到正則表達式的時候都編譯一次。當你確認正則表達式能
保持不變的時候可使用compile 方法來編譯它(在獲得它的匹配模式后),這樣就可以在腳本中重復多次使用它。
你亦可以使用compile 方法來改變在運行期間改變正則表達式。例如,假如正則表達式發生變化,
你可以使用compile方法來重新編譯該對象來提高使用效率。
使用該方法將改變正則表達式的source, global和ignoreCasesource屬性的值。 constructor
指出建立對象原型的function。注意這個屬性的值由函數本身提供,而不是一個字串包含RegExp的name.Property提供。
在JavaScript 1.1, NES 2.0以上版本提供 ECMA版本ECMA-262 描述:參考Object.constructor.
exec方法 在指定的字符串運行匹配搜索。返回一個結果數組。 是RegExp的方法
在JavaScript 1.2, NES 3.0以上版本提供 語法: regexp.exec([str])regexp([str])
參數: regexp,正則表達式的名稱,可以是一個變量名或文字定義串。
str,要匹配正則表達式的字符串,如果省略,將使用RegExp.input的值。
描述:就如在語法描述中的一樣,正則表達工的exec方法能夠被直接調用(使用regexp.exec(str))或者間接調用(使用regexp(str))。
假如你只是運行以找出是否匹配,可以使用String搜索方法。
假如匹配成功,exec方法返回一個數組并且更新正則表達式對象屬性的值和預先定義的正則表達式對象、RegExp。如果匹配失敗,exec方法返回null。
請看下例: 下面是該腳本的返回值:對象 屬性/Index 描述 例子
myArray
myArray的內容 ["dbBd", "bB", "d"]
index
基于0的匹配index 1
input
原始字符串cdbBdbsbz
[0]
最后匹配的字符dbBd
[1], ...[n]
用圓括號括住的匹配字符串,如果有的話。不限制括號的個數。[1] = bB
[2] = d
myRe
lastIndex
開始下次匹配操作的index值5
ignoreCase
指出"i"是否使用以忽略大小寫true
global
指出是否使用"g"標記來進行匹配所有可能的字串true
source
定義模式的文本字符串d(b+)(d)
RegExp
lastMatch$&
最后匹配的字符dbBd
leftContext$Q
最新匹配前面的子串c
rightContext$'
最新匹配后面的子串bsbz
$1, ...$9
圓括號內的匹配子串,如果有的話。圓括號的個數不受限制,但RegExp只能保留最后9個$1 = bB
$2 = d
lastParen$+
最后一個加上圓括號的匹配子串,如果有的話d
假如你的正則表達式使用了"g"標記,你可以多次使用exec 方法來連續匹配相同的串。當你這樣做
的時候,新的匹配將從由正則表達式的lastIndex 屬性值確定的子串中開始。例如,假定你使用下面的腳本:
這個腳本顯示如下結果: Found abb. Next match starts at 3
Found ab. Next match starts at 9 例子:
在下面的例子中,用戶輸入一個名字,腳本根據輸入執行匹配操作。接著檢查數組看是否和其它用戶的名字匹配。
本腳本假定已注冊的用戶的姓已經存進了數組A中,或許從一個數據庫中取得。
新聞熱點
疑難解答