添加用户信息时 ,判断联系方式是否合法 (2020/11/11)
用正则表达式判断
1,判断11位手机号
手机号第一位数字是1,第2位数字是从3到9的任意一位数,所以使用表达式1[3-9],手机号的前两位确定了,后9位数字就是随机的了,用\d{9}来表示
如:13239960109
String regex = “1[3-9]\\d{9}”
2,判断区号+固定电话号
如:037158652546 / 037-158652546
区号是以 0 开头的,后面是 2~3 位数,因此在匹配区号的时候可以使用正则表达式0\d{2,3}。固定电话号码由 7~8 位数字组成,因此可以使用表达式\d{7,8}来进行匹配。固定电话的组合方式可能是“区号-号码”或者是“区号号码”,因此匹配固定电话号码时,可以使用“0\d{2,3}[-]?\d{7,8}|0\d{2,3}\s?\d{7,8}”表达式
String regex = "0\\d{2,3}[-]?\\d{7,8}|0\\d{2,3}\\s?\\d{7,8}"
3,判断国家区号+11位手机号
如:+86-15994172322 (中国+86)
+335-15994172322
String regex =“(\\+\\d{2,3}-)?([1][3,4,5,6,7,8,9][0-9]\\d{8})”
下面是具体代码实现
String regex = "0\\d{2,3}[-]?\\d{7,8}|0\\d{2,3}\\s?\\d{7,8}|(\\+\\d{2,3}-)?([1][3,4,5,6,7,8,9][0-9]\\d{8})|1[3-9]\\d{9}";
// 编译正则表达式
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(phone);
if(matcher.matches()){ //满足编译,说名手机号合法
clientDao.insert(client); //添加用户
}
else {
System.out.println("输入的联系方式不合法");
}