正規表達式物件 RegExp

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:圖形化理解正規表達式。

Debuggex :圖形化正規表達式,也可以測試正規表達式。
 
 

  按個讚!~支持本站!~

FB推薦載入中  

你可能會有興趣的文章