由於常常在回覆表單時會被限制手機欄位只能輸入數字
或是在註冊時輸入密碼要求一定要包含大小寫、數字、特殊字元等等
若不符合規則就沒辦法進行下一步
因此讓我們來了解這些輸入框背後的邏輯是怎麼驗證的
正則表達式(Regular Expression)
藉由一些標準化的方式來確保輸入在有效範圍值域內
讓原本複雜的字串改用簡單的方式來建立規則
但剛開始了解會比較難入門
不過先知道哪些很實用記起來就節省許多自己寫判斷式的時間
而且許多程式語言都支援
這樣存放資料進資料庫時才不會一下有dash或是point或空格等凌亂的東西
像是驗證電話號碼:^[0-9]{10}$
(規則1:輸入僅包含0~9的數字
規則2:總長度須剛好為10碼)
首先以^表示以0-9開頭的字串
{10}表示字串一共10碼
$表示字串的結尾
主要常用到的正則表達式符號還有像是以下列出的幾點
[^]表示在中括號內的字元都排除
.表示任一字元
\d表示任意數字
(所以剛才驗證電話號碼的表達式也可以改寫成^\d{10}$)
\D 表示除了數字以外的字元(相當於[^0~9])
*:表示0或多次
?:表示0或1次
[a-zA-Z] :小寫 a-z 和大寫 A-Z 之間字元都是合法的
\w :文字和底線都是合法的(相當於[a-z\dA-Z_])
\W:非文字字元是合法的(像標點符號or特殊字元等)
\s:空格字元是合法的
\S:只要是非空格字元是合法的
知道了以上規則後
便可以自己組合出想要的驗證方式
譬如說簡單的驗證身分證字號用^[A-Z]\d{9}$
就是建立開頭要是A-Z間的大寫英文字母後面接9碼數字
但這些都只是最基本的判斷
若真的要驗證是否合法的話還可以加上判斷首位數字是否為1或2(生理男或生理女)
末碼是否有符合設定規則等等
可繁可簡 主要看需求有沒有真的那麼嚴謹