建立正規表示式:
字面量形式定義正規表示式:
var expression = / pattern /flags ;pattern部分可以使任意簡單或複雜的正規表示式。每個正規表示式可以帶有乙個或多個標誌。
標誌為:①g,表示全域性模式。②i,表示不區分大小寫。③m,表示多行模式
正規表示式的元字元包括:( [ ] )。注意:模式中使用的所有元字元必須經過轉義(使用 \ 符號)。
使用regexp建構函式:
var pattern = new regexp("正規表示式","標誌符")。兩個引數都是字串。有時要對字元進行雙重轉義,對所有的元字元都要雙重轉義。
ecmascript3中,正規表示式字面量始終共享乙個regexp例項,而使用建構函式建立的每乙個新regexp例項都是乙個新例項。
ecmascript5中,規定使用正規表示式字面量必須像直接呼叫建構函式一樣,每次建立新的例項。ie9+,ff4+,chrome都做出了修改。
regexp例項屬性
global:布林值,表示是否設定了b標誌。
ignorecase:布林值,表示是否設定了i標誌。
multiline:布林值,表示是否設定了m標誌。
source:正規表示式的字串表示,按照字面量形式而非傳入建構函式中的字串模式返回。
regexp例項方法:
var matches = pattern.exec(text);
exec(),接受乙個引數,即要應用模式的字串,然後返回乙個包含第乙個匹配項資訊的陣列;或者在沒有匹配項的情況下返回null。
即使設定了全域性標誌,每次仍只返回乙個匹配項。①在不設定全域性標誌的情況下,在同一字串上多次呼叫exec()方法將始終返回第乙個匹配項的資訊。②在設定全域性標誌的情況下,每次呼叫exec()都會在字串中繼續查詢新的項。
返回的陣列是array例項,但包含兩個額外屬性:index和input。
index表示匹配項在字串中的位置。
input表示應用正規表示式的字串。
在陣列中,第一項是與整個模式匹配的字串,其他項是與模式中的捕獲組匹配的字串(如果模式中沒有捕獲組,則該陣列只包含一項)。
test()方法,接受乙個字串引數,在模式與該引數匹配的情況下返回true,否則返回false。
tolocalstring()與tostring()返回正規表示式的字面量。
valueof()方法返回正規表示式本身。
四、regexp建構函式屬性:p107
JS高階程式設計學習筆記之JS事件(1)
事件流 冒泡定義 事件開始時由最具體的元素接收,然後逐級上傳到較為不具體的節點。ie9 ff chrome safari會將事件一直冒泡到window物件。ie5.5及其以下會跳過元素,直接從body跳到document 若發生事件的節點元素並沒有繫結該事件,則這個動作會向上冒泡,直到被執行,一直冒...
JS高階高階之征服非同步程式設計
問大家乙個問題,js為什麼是單執行緒?也許有些人知道,但是我要說的是有趣的事情,創造js的網景公司拒絕別人向瀏覽器裡加入執行緒的提議,原因是如果加入了執行緒,這門語言的推廣就沒有那麼成功了,js之所以這麼流行,某種程度上是因為菜鳥程式設計師也能上手,他們不必擔心死鎖和競爭問題。總結 加入多執行緒,我...
JavaScript高階程式設計學習筆記
雖然object建構函式或物件字面量都可以用來建立單個物件,但這些方式有個明顯的缺點 使用同乙個介面建立很多物件,會產生大量的重複 為解決這個問題,人們開始使用 工廠模式的一種變體。function createperson name,age,job returno var person1 crea...