正则世界,唯我独尊
编写项目的时候,多多少少都有些验证,用的时候费力气去写或者满世界的找需要的资料太麻烦
就在这里进行汇总记录,后续会不断更新不断完善
正则表达式之——QQ号码验证
String regex = "[1-9][0-9]{4,14}";//第一位1-9之间的数字,第二位0-9之间的数字,数字范围4-14个之间
正则表达式之——微信号码验证
String regex = "/^[a-zA-Z]{1}[-_a-zA-Z0-9]{5,19}$/";
正则表达式之——手机号码验证
// "[1]"代表下一位为数字可以是几,"[0-9]"代表可以为0-9中的一个,"[5,7,9]"表示可以是5,7,9中的任意一位,[^4]表示除4以外的任何一个,\\d{8}"代表后面是可以是0~9的数字,有8位。
String regex = "^((13[0-9])|(14[5,6,7,9])|(15[^4])|(16[5,6])|(17[0-9])|(18[0-9])|(19[1,8,9]))\\d{8}$";
正则表达式之——邮箱号码验证
String regex = "^[a-z0-9]+([._\\\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$";
正则表达式之——在程序中的应用
/**
* @param uinfo 用户的信息,验证用户userID、QQ号、微信号、手机号、通知的邮箱
* @return 如果验证失败返回失败信息,否则返回null
*/
public String checkUInfo(uinfo uinfo){
//验证用户userID
if (uinfo==null||uinfo.getUserid()<=100000){
return "传入非法数据";
}
//验证QQ号
String qqnum = uinfo.getQqnum();
String regex = "[1-9][0-9]{4,14}";//第一位1-9之间的数字,第二位0-9之间的数字,数字范围4-14个之间
if (qqnum!=null&&!qqnum.matches(regex)){//如果不是,返回QQ号不正确
return "QQ号码不正确";
}
//验证微信号
regex = "/^[a-zA-Z]{1}[-_a-zA-Z0-9]{5,19}$/";
String wxnum = uinfo.getWxnum();
if (wxnum!=null&&!wxnum.matches(regex)){
return "微信号码不正确";
}
//验证手机号
/**
* 判断字符串是否符合手机号码格式
* 移动号段: 134 135 136 137 138 139 147 148 150 151 152 157 158 159 165 172 178 182 183 184 187 188 198
* 联通号段: 130 131 132 145 146 155 156 166 170 171 175 176 185 186
* 电信号段: 133 149 153 170 173 174 177 180 181 189 191 199
* 虚拟运营商: 170
* @param str
* @return 待检测的字符串
*/
// "[1]"代表下一位为数字可以是几,"[0-9]"代表可以为0-9中的一个,"[5,7,9]"表示可以是5,7,9中的任意一位,[^4]表示除4以外的任何一个,\\d{8}"代表后面是可以是0~9的数字,有8位。
regex = "^((13[0-9])|(14[5,6,7,9])|(15[^4])|(16[5,6])|(17[0-9])|(18[0-9])|(19[1,8,9]))\\d{8}$";
String phonenum = uinfo.getPhonenum();
if (phonenum!=null&&!phonenum.matches(regex)){
return "手机号码不正确";
}
//验证邮箱号码
regex = "^[a-z0-9]+([._\\\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$";
String tallmail = uinfo.getTallmail();
if (tallmail!=null&&!tallmail.matches(regex)){
return "邮箱号码不正确";
}
return null;
}