電子郵箱
描述:
1、要忽略掉大小寫
2、有vip.qq.com 這樣的vip的qq郵箱,有sina.com.cn這樣的長結尾郵箱
2、以非下劃線開頭,數字字母下劃線爲內容,以@分隔,以域名爲結尾。@以後的域名就會適用於域名規則了,即 字母數字減號.com net .cn .cc,也有.com.cn
5、網易郵箱的規則是:6到18個字符,可以使用字母、數字、下劃線,需要以字母開頭
6、新浪郵箱的規則是:4~16個字符,可以使用小寫字母、數字、下劃線、下劃線不能在開頭
[A-Za-z0-9\.\-_]{2,20}@[A-Za-z0-9\.\-]+
測試數據
g36314317@126.com hello2@125.com g44_cc@123.com zhango_cc@123.com 12345@qQ.com 123123@139.com q123123@china-ren.com asdfsdf@vip.sina.com.cn 12345@vip.qq.com 12345@vip.qq.com wangyanping1969@163.com 375669211@QQ.com 1245852@vip.QQ.com 1354654@aa.com wgy180@china-invs.cn abc@126.com _qda@aa.com ------------------- 以上正確 以下錯誤 ------------------- h哈1@ss.com 哈1@22a.com @1.com qao_cc@ 123.com
結果
身份證號
註釋:不校驗“非閏年,2月29日的問題”
參考:https://www.jb51.net/article/109384.htm
^([1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2})$
手機號碼
說明:因爲手機號碼有各種號碼段,以後也可能開通更多的號碼段,所以只進行粗放限制,首位爲1,純數字,共11位
* 移動號碼段:139、138、137、136、135、134、150、151、152、157、158、159、182、183、187、188、147
* 聯通號碼段:130、131、132、136、185、186、145
* 電信號碼段:133、153、180、189,177
^1\d{10}$'
固定電話號碼
區號爲3到4位以0開頭,電話1-9開頭,共6到8位,如果有分機號,再加上分機號2~4位
^(0[0-9]{2,3}-)?[1-9][0-9]{5,7}(-[0-9]{3,4})?$
日期
考慮平年閏年 參考 https://www.cnblogs.com/mgod/archive/2007/04/26/728628.html
(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)
月份
如有需要,去掉減號
(18|19|20)[0-9]{2}-(0[1-9]|1[012])
姓名
select xingming from cr_gr_test WHERE ASCIISTR(TRIM(xingming)) NOT BETWEEN '\4E00' AND '\9FA5' OR LENGTHB(TRIM(xingming))<4;--武漢
select xingming from cr_gr_test WHERE regexp_like(xingming,'[\u4e00-\u9fa5]{2,5}');
select xingming from cr_gr_test WHERE regexp_like(xingming,'[\u4E00-\u9FA5\uf900-\ufa2d·s]{2,20}');--網上1
select xingming,rowid from cr_gr_test WHERE regexp_like(xingming,'[\u4E00-\u9FFF]{2,4}');--網上2
select xingming from cr_gr_test WHERE regexp_like(xingming,'[\u4e00-\u9fa5\u36c3\u4DAE]{2,}');--網上3
select xingming,rowid from cr_gr_test WHERE regexp_like(xingming,'[\u4E00-\u9FFF]{2,4}');--網上2
select xingming,rowid from cr_gr_test WHERE not regexp_like(xingming,'[\u4E00-\u9FFF]{2,4}');--網上2
select xingming from cr_gr_test where ASCIISTR(TRIM(xingming)) NOT BETWEEN '\4E00' AND '\9FA5' OR LENGTHB(TRIM(xingming))<4;
select xingming , ASCIISTR(TRIM(xingming)) from cr_gr_test;
select ASCIISTR('㾊') from dual;
Select UNISTR ('\9fFF') from dual;
• .