电子邮箱
描述:
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;
• .