續「JavaScript學習路-(23)表單驗證-2」
re = new RegExp(“pattern", “flag")
pattern 可以寫 /expression/ (即上一篇提到的中介字元 + 量詞)
或是寫入另外一個正規式。
flag 是比對的方式,有三種:
g:全域比對 (Global match)
i:忽略大小寫 (Ignore case)
gi:全域比對並忽略大小寫
正規式有兩個方法,分別是 exec() 和 test()
test() 可以檢測字串有沒有符合規範,並回傳布林值 (true, false)
exec() 可以比對字串運算,把得到的值以陣列回傳
有些時候單純的比對方式很難完全達到需求,需要一些其他功能輔助:
集合比對選用的字元,用 [] 框起來,裡面放被比對的條件,只要有任一條件被滿足就是符合
/^[\w\.-_\+]+@[\w_]+(\.\w{2,4})+$/
以上例 (email 驗證) 來說,
第一、三組 [\w\.-_\+] 裡面的條件為 -->
\w 任何文數字元、\. 符號.、-符號、_符號、+符號
驗證 email 帳號除了純文數以外還有其他符號參雜的可能性
因無意義的符號可以直接寫進正規式不被影響,所以 @, _, -, + 等等的寫進去就對了
第二組 [\w_] --> 文數加上 - 的可能組合
選替中介字元的用途在選取 “這個” 或 “那個” ,
如果還有 “那邊那個” 跟 “這邊那個” 一樣通通寫進去,只要有其中一個比對成功就滿足條件。
跟運算子的 || 很像,不過只有一條線就是。
/^(A|B|C) \d$/
最後是今天的練習。
做法是在表單裡驗證數項資料,每一項都先經過比對,在最後送出表單時如果全數符合就執行成功。
裡面驗證比對只能做最基礎的 demo ,要寫到完全正確還有很長的路要走,尚在學習中還請見諒...。
本文同步發表於 http://azzurro.blog.aznc.cc/learn_javascript_25/