2010年9月7日 星期二

Regular expression 常用驗證

Regular expression,又稱正則表達式,在網頁探勘中為分析資料的一個重要角色,它能做的事非常的廣泛,例如驗證也要用到。而以下我彙整網路上的一些驗證的正則表達式,有需要使用的,大可複製到你的程式碼裡用。

身分證
([A-Z]|[a-z])\d{9}
網址
http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
電子郵件
\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
郵遞區號
\d{3}((-)?\d{2})? 
電話
[0-9]{2}\-[0-9]{7}
手機
[0-9]{4}\-[0-9]{3}\-[0-9]{3}


正整數
^\d*$ 
整數
^([+-]?)\d*$
小數點
^([+-]?)[1-9]\d*\.\d*$


驗證 IP
^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$
驗證時間 (HH:MM:SS)
([0-1][0-9]|2[0-3])\:[0-5][0-9]\:[0-5][0-9]
驗證日期 (YYYY/MM/DD)
^[0-9]{4}/(((0[13578]|(10|12))/(0[1-9]|[1-2][0-9]|3[0-1]))|
(02/(0[1-9]|[1-2][0-9]))|((0[469]|11)/(0[1-9]|[1-2][0-9]|30)))$


HTML 標籤
/^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/
使用者名
^[a-z0-9_-]{3,16}$
密碼
^[a-z0-9_-]{6,18}$


中日韓符號區。收容康熙字典部首、中日韓輔助部首、注音符號、日本假名、韓文音符,中日韓的符號、標點、帶圈或帶括符文數字、月份,以及日本的假名組合、單位、年號、月份、日期、時間等。
\u2e80~\u33ffh
中日韓認同表意文字擴充a區,總計收容6,582個中日韓漢字。
\u3400~\u4dffh
中日韓認同表意文字區,總計收容20,902個中日韓漢字。
\u4e00~\u9fffh
彝族文字區,收容中國南方彝族文字和字根。
\ua000~\ua4ffh
韓文拼音組合字區,收容以韓文音符拼成的文字。
\uac00~\ud7ffh
中日韓兼容表意文字區,總計收容302個中日韓漢字。
\uf900~\ufaffh
文字表現形式區,收容組合拉丁文字、希伯來文、阿拉伯文、中日韓直式標點、小符號、半角符號、全角符號等。
\ufb00~\ufffdh


參考網站:
http://hi.baidu.com/liaidongyinhu/blog/item/2b72ed7978b4eef90bd187d0.html
http://www.dotblogs.com.tw/mouse777/archive/2009/01/13/6780.aspx
http://www.wretch.cc/blog/bigdstut/12932356
http://zh.wikipedia.org/zh-hk/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F

回目錄
回首頁

2 則留言 :

  1. 身分證是錯的...雖然後面是9個數字沒錯
    但是第一個數字只有1-2而已...
    就是說我輸入E712345678 這種也能過...
    第一個數字根本不可能出現7...

    回覆刪除
    回覆
    1. 正確。但就算輸入 E123456789 也是錯的,依照您的做法,最佳解不過只是解決男女的問題,但實際上若要做到身分證的驗證,請參考身分證驗證公式: http://goo.gl/DxysEL。這就不是 Regex 可以做到的範圍了!

      刪除

Related Posts Plugin for WordPress, Blogger...