java常见正则表达式-手机,邮箱,身份证等
1 整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$2 只能输入数字:^[0-9]*$3 只能输入n位的数字:^\d{n}$4 只能输入至少n位的数字:^\d{n,}$5 只能输入m~n位的数字:^\d{m,n}$6 只能输入零和非零开头的数字:^(0|[1-9][0-9]*)$7 只能输入有两位小数的正实数:^[0-9]+(.[0-9]{2})?$8 只能输入有1~3位小数的正实
1 整数或者小数: ^[0-9]+\.{0,1}[0-9]{0,2}$
2 只能输入数字:^[0-9]*$
3 只能输入n位的数字:^\d{n}$
4 只能输入至少n位的数字:^\d{n,}$
5 只能输入m~n位的数字:^\d{m,n}$
6 只能输入零和非零开头的数字:^(0|[1-9][0-9]*)$
7 只能输入有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
8 只能输入有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
9 1-999之间的,保留2为小数:^(?!1000|0+$)\\d{1,3}(\\.\\d{0,2})?$
10 只能输入非零的正整数:^\+?[1-9][0-9]*$
12 只能输入非零的负整数:^\-[1-9][]0-9*$
13 只能输入长度为3的字符:^.{3}$
14 只能输入由26个英文字母组成的字符串:^[A-Za-z]+$
15 只能输入由26个大写英文字母组成的字符串:^[A-Z]+$
16 只能输入由26个小写英文字母组成的字符串:^[a-z]+$
17 只能输入由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
18 只能输入由数字、26个英文字母或者下划线组成的字符串:^\w+$
19 验证用户密码:^[a-zA-Z]\w{5,17}$
20 只能输入汉字:^[\u4e00-\u9fa5]{0,}$
21 验证电话号码:^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$
22 邮箱:^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$
特别注意:以上正则需测试后方可使用
按照身份证号获取年龄,性别,生日
package com.budwk.app.util;
import org.apache.commons.lang3.StringUtils;
import java.util.Calendar;
/**
*
*/
public class IdCardUtil {
/**
* 获取出生日期
*
* @return 返回字符串类型
*/
public static String getBirthByIdCard(String idCard) {
if (idCard.length() != 18 && idCard.length() != 15) {
throw new Exception("请输入正确的身份证号码");
}
if (idCard.length() == 18) {
// 得到年份
String year = idCard.substring(6).substring(0, 4);
// 得到月份
String month = idCard.substring(10).substring(0, 2);
// 得到日
String day = idCard.substring(12).substring(0, 2);
return String.format("%s%s%s%s%s", year, "-", month, "-", day);
}
// 15位的身份证数据
String year = "19" + idCard.substring(6, 8);// 年份
String month = idCard.substring(8, 10);// 月份
String day = idCard.substring(10, 12);// 得到日
return String.format("%s%s%s%s%s", year, "-", month, "-", day);
}
/**
* 获取性别
* 0 =未知的性别, 9=未说明的性别,2=女性,1=男性
* @return int
*/
public static String getSexByIdCard(String idCard) {
// 身份证号码为空
if (StringUtils.isEmpty(idCard)) {
return "未知的性别";
}
if (idCard.length() == 18) {
return Integer.parseInt(idCard.substring(16).substring(0, 1)) % 2 == 0 ? "女" : "男";
}
if (idCard.length() == 15) {
return Integer.parseInt(idCard.substring(14, 15)) % 2 == 0 ? "女" : "男";
}
return "未说明的性别";
}
/**
* 根据身份证的号码算出当前身份证持有者的年龄
*
* @param
* @throws
* @return 0 (身份证号码为空)
*/
public static int getAgeByIdCard(String idcard) {
if (StringUtils.isEmpty(idcard)) {
return 0;
}
String birth = getBirthByIdCard(idcard);
int year = Integer.parseInt(birth.substring(0, 4));
int month = Integer.parseInt(birth.substring(5, 7));
int day = Integer.parseInt(birth.substring(8));
Calendar cal = Calendar.getInstance();
int age = cal.get(Calendar.YEAR) - year;
//周岁计算
if (cal.get(Calendar.MONTH) < (month - 1) || (cal.get(Calendar.MONTH) == (month - 1) && cal.get(Calendar.DATE) < day)) {
age --;
}
return age;
}
}
更多推荐
所有评论(0)