Regexregular expression詳述(二)

來源:互聯網
上載者:User
express|正則 Regex詳述(二)

以下這些不是Regex的新增對象請參閱對應的JavaScript對象的屬性 $_屬性 參考input $*屬性
參考multiline $&屬性 參考lastMatch $+屬性 參考lastParen $`屬性
參考leftContext $'屬性 參考rightContext compile方法 在指令碼運行期間編譯Regex對象
屬於RegExp的方法 在JavaScript 1.2, NES 3.0以上版本提供 文法:
regexp.compile(pattern[, flags]) 以數: regexp Regex的名稱,可以是變數名或文字串。
pattern Regex的定義文本。 flags 如果指定的話,可以是下面其中的一個: "g": 匹配所有可能的字串
"i": 忽略大小寫 "gi": 匹配所有可能的字串及忽略大小寫 描述:
使用compile方法來編譯一個Regex created with the RegExp constructor function。這樣
就強制Regex只編譯一次,而不是每次遇到Regex的時候都編譯一次。當你確認Regex能
保持不變的時候可使用compile 方法來編譯它(在獲得它的匹配模式後),這樣就可以在指令碼中重複多次使用它。
你亦可以使用compile 方法來改變在運行期間改變Regex。例如,假如Regex發生變化,
你可以使用compile方法來重新編譯該對象來提高使用效率。
使用該方法將改變Regex的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,Regex的名稱,可以是一個變數名或文字定義串。
str,要匹配Regex的字串,如果省略,將使用RegExp.input的值。
描述:就如在文法描述中的一樣,正則表達工的exec方法能夠被直接調用(使用regexp.exec(str))或者間接調用(使用regexp(str))。
假如你只是運行以找出是否匹配,可以使用String搜尋方法。
假如匹配成功,exec方法返回一個數組並且更新Regex對象屬性的值和預先定義的Regex對象、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

假如你的Regex使用了"g"標記,你可以多次使用exec 方法來連續匹配相同的串。當你這樣做
的時候,新的匹配將從由Regex的lastIndex 屬性值確定的子串中開始。例如,假定你使用下面的指令碼:
這個指令碼顯示如下結果: Found abb. Next match starts at 3
Found ab. Next match starts at 9 例子:
在下面的例子中,使用者輸入一個名字,指令碼根據輸入執行匹配操作。接著檢查數組看是否和其它使用者的名字匹配。
本指令碼假定已註冊的使用者的姓已經存進了數組A中,或許從一個資料庫中取得。



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

11.11 Big Sale for Cloud

Get Unbeatable Offers with up to 90% Off,Oct.24-Nov.13 (UTC+8)

Get It Now >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。