正規表達式物件 RegExp
- 詳細內容
- 分類:Javascript
- 發佈:2013-05-27, 週一 09:10
- 點擊數:2657
Javascript的正規表達式物件 RegExp :
正規表達式是一種特殊定義的"樣本",通常被用來比對、搜尋,或是取代字串。簡單的樣本像是:/abc/,可以用來比對字串內是否含有"abc",複雜的像是:/ ^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/,可以用來比對是否為email字串。
正規表達式的樣本定義方式其實十分複雜,寫一本厚厚的書都不為過,這裡其實每有打算提到太多,主要還是著重於Javascript對正規表達式的應用,若是對正規表達式有興趣的可以參考另一篇文章正規表達式pattern的字元與意義對照表。
有許多程式語言都有實現正規表達式的方法,Javascript當然也不例外,正規表達是在javascript中是以物件的方式存在。建立正規表達式的方法有兩種:
RegExp(pattern [, flags])
/pattern/flags
pattern:正規表達式的樣本
flags:旗標,有下面幾種
g:全局比對。
i:忽略大小寫字母(大小寫不敏感)。
m:開頭與結尾字元(^ $)擴展至每行,而不是全部字串的開頭與結尾。
範例:
var myreg = new RegExp("\\d+","g");
var myreg = /\d+/g;
第一種使用new來建立一個正規表達式物件,第二種則是使用正規表達式實字來建立物件。很明顯第一種作法較為複雜,由於是以字串方式當作參數,因此對於一些特殊字元像是反斜線(\),需要在前面加一個跳脫字元(\),這會讓原本看起來就很複雜的正規表達是看起來就更複雜了,應此,一般在javascript中,都建議直接使用第二種做法來建立正規表達式物件。
正規表達式物件的屬性:
屬性 | 說明 |
---|---|
global | 正規表達式中的"g"旗標是否被使用。唯讀屬性。 |
ignoreCase | 正規表達式中的"i"旗標是否被使用。唯讀屬性。 |
lastIndex | 指定下次比對開始位置的索引。 |
multiline | 正規表達式中的"i"旗標是否被使用。唯讀屬性。 |
source |
正規表達式的樣本,唯讀屬性。 |
正規表達式物件的方法:
方法 | 說明 |
---|---|
exec() | 測試並傳回第一個比對成功之字串。 |
test() | 測試並傳回true或是false。 |
toString() | 傳回正規表達式字串。 |
正規表達式資源:
RegExLib:正規表達式資料庫,有許多常用的正規表達式樣本,也可以測試正規表達式。
Regexper:圖形化理解正規表達式。
按個讚!~支持本站!~