regexp.test(string)
regexp 表示正規表示式物件,引數 string 表示要檢測的字串。如果字串 string 中含有與 regexp 正規表示式匹配的文字,則返回 true;否則返回 false。var s = "JavaScript"; var r = /w/g; var b = r.test(s);同樣使用下面正規表示式也能夠進行匹配,並返回true。
var r = /JavaScript/g; var b = r.test(s);但是如果使用下面這個正規表示式進行匹配,就會返回 false,因為在字串“JavaScript”中找不到對應的匹配。
var r = /d/g; var b = r.test(s);在全域性模式下,test() 等價於 exec() 方法。配合迴圈語句,它們都能夠疊代字串,執行全域性匹配操作,test() 返回布林值,exec() 返回陣列或者 null。雖然 test() 方法的返回值是布林值,但是通過正規表示式物件的屬性和 RegExp 靜態屬性,依然可以獲取到每次疊代操作的匹配資訊。
var s = "JavaScript"; //測試字串 var r = /w/g; //匹配模式 while(r.test(s)) { //迴圈執行匹配檢測,如果true,則繼續驗證 console.log("匹配文字 = " + RegExp.lastMatch + " r.lastIndex = " + r.lastIndex); //利用RegExp靜態屬性顯示當前匹配的資訊 }RegExp.lastMatch 記錄了每次匹配的文字,正規表示式物件的 lastIndex 屬性記錄下一次匹配的起始位置。
方法 | 所屬物件 | 引數 | 返回值 | 通用性 | 特殊性 |
---|---|---|---|---|---|
exec() | 正規表示式 | 字串 | 匹配結果的陣列。如果沒有找到,返回值為 null | 通用強大 | 一次只能匹配一個單元,並提供詳細的返回資訊 |
test() | 正規表示式 | 字串 | 布林值,表示是否匹配 | 快速驗證 | 一次只能匹配一個單元,返回資訊與 exec() 方法基本相似 |
search() | 字串 | 正規表示式 | 匹配起始位置。如果沒有找到任何匹配的字串,則返回 -1 | 簡單字元定位 | 不執行全域性匹配,將忽略標誌 g,也會忽略正規表示式的 lastIndex 屬性 |
match() | 字串 | 正規表示式 | 匹配的陣列,或者匹配資訊的陣列 | 常用字元匹配方法 | 將根據全域性模式的標誌 g 決定匹配操作的行為 |
replace() | 字串 | 正規表示式或替換文字 | 返回替換後的新字串 | 匹配替換操作 | 可以支援替換函數,同時可以獲取更多匹配資訊 |
split() | 字串 | 正規表示式或分割字元 | 返回陣列 | 特殊用途 | 把字串分隔為字串陣列 |