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;
    }
}

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐