兩種書寫方式:
==>字面量形式:var expression = / pattern / flags;
==>正則表達式的方式:var expression = new RegExp("pattern","flags");
==>二者關系(可以使用字面量來定義的任何表達式蘑秽,都可以使用構造函數(shù)來定義):
二者的書寫格式
字符類、限定符厌殉、分組雅倒、向前查找以及反向引用都是什么蚀之?祖乳?砸西?绞蹦?
模式中使用的所有元字符都必須轉義AΨ堋!幽七!正則表達式中的元字符包括:
( ?[ ?{ ?\ ?^ ?$ ?| ?) ?? ?* ?+ ?. ?] ?}
[ ? ]的用法
.的用法
轉義(這些元字符在正則表達式中都有一或多種特殊用途,因此如果想要匹配字符串中包含的這些字符溅呢,就必須對它們進行轉義澡屡。):
注意:如果使用正則表達式書寫格式,則需要對字符進行雙重轉義(即 \ \)咐旧。
注:正則表達式字面量始終會共享同一個RegExp實例驶鹉,而使用構造函數(shù)來創(chuàng)建的每一個新RegExp實例都是一個新實例。
此處不明白什么意思铣墨?室埋??伊约?姚淆??
RegExp實例屬性:(通過這些屬性可以取得有關模式的各種信息屡律,但卻沒有多大用處腌逢,因為這些信息全都包含在模式聲明中)
source屬性保存的是規(guī)范形式的字符串,即字面量形式所用的字符串超埋。
source屬性保存的是規(guī)范形式的字符串搏讶,即字面量形式所用的字符串
RegExp實例方法:exec() 和 test()
exec()方法專門為捕獲組而設計,其包含兩個額外的屬性:index和input霍殴。
index表示匹配項在字符串中的位置
input表示應用正則表達式的字符串(在捕獲返回的數(shù)組中媒惕,第一項是與整個模式匹配的字符串,其他項是與模式中的捕獲組匹配的字符串(如果模式中沒有捕獲組来庭,則該數(shù)組只包含一項妒蔚,詳見下面圖紅框框部分))
加g與不加g的區(qū)別
test()接受一個字符串參數(shù)。在模式與該參數(shù)匹配的情況下返回true巾腕;否則面睛,返回false。
RegExp實例繼承toLocalString()和toString()方法
以字面量形式創(chuàng)建的一樣顯示器字符串表示
RegExp構造函數(shù)屬性:
使用長屬性名
使用短屬性名(由于這些短屬性名大豆不是有效的ECMAScript標識符尊搬,因此必須通過方括號語法來訪問它們)