1. 程式人生 > >JavaScript 正則表示式匹配成功後的返回結果

JavaScript 正則表示式匹配成功後的返回結果

使用正則表示式EDIT

表 4.2 使用正則表示式的方法
方法 描述
exec 一個在字串中執行查詢匹配的RegExp方法,它返回一個數組(未匹配到則返回null)。
test 一個在字串中測試是否匹配的RegExp方法,它返回true或false。
match 一個在字串中執行查詢匹配的String方法,它返回一個數組或者在未匹配到時返回null。
一個在字串中測試匹配的String方法,它返回匹配到的位置索引,或者在失敗時返回-1。
一個在字串中執行查詢匹配的String方法,並且使用替換字串替換掉匹配到的子字串。
split 一個使用正則表示式或者一個固定字串分隔一個字串,並將分隔後的子字串儲存到陣列中的String方法。

當你想要知道在一個字串中的一個匹配是否被找到,你可以使用test或search方法;想得到更多的資訊(但是比較慢)則可以使用exec或match方法。如果你使用exec或match方法並且匹配成功了,那麼這些方法將返回一個數組並且更新相關的正則表示式物件的屬性和預定義的正則表示式物件(詳見下)。如果匹配失敗,那麼exec方法返回null(也就是false)。

在接下來的例子中,指令碼將使用exec方法在一個字串中查詢一個匹配。

var myRe = /d(b+)d/g;
var myArray = myRe.exec("cdbbdbsbz");

如果你不需要訪問正則表示式的屬性,這個指令碼通過另一個方法來建立myArray:

var myArray = /d(b+)d/g.exec("cdbbdbsbz");

如果你想通過一個字串構建正則表示式,那麼這個指令碼還有另一種方法:

var myRe = new RegExp("d(b+)d", "g");
var myArray = myRe.exec("cdbbdbsbz");

通過這些指令碼,匹配成功後將返回一個數組並且更新正則表示式的屬性,如下表所示。

表 4.3 正則表示式執行返回資訊
物件 屬性或索引 描述 在例子中對應的值
myArray 匹配到的字串和所有被記住的子字串。 ["dbbd", "bb"]
index 在輸入的字串中匹配到的以0開始的索引值。 1
input 初始字串。 "cdbbdbsbz"
[0] 匹配到的所有字串(並不是匹配後記住的字串)。注:原文"The last matched characters.",應該是原版錯誤。匹配到的最後一個字元索引。 "dbbd"
myRe lastIndex 下一個匹配的索引值。(這個屬性只有在使用g引數時可用在 通過引數進行高階搜尋 一節有詳細的描述.) 5
source 模式文字。在正則表示式建立時更新,不執行。 "d(b+)d"