正则表达式校验工具类

来源:互联网 发布:spaceman软件 编辑:程序博客网 时间:2024/05/24 15:43

几乎每个项目里都有正则表达式校验, 写几个简单的校验记录下来,方便使用!

1.判断是否是合法的手机号

//判断是否是合法的手机号 public static boolean checkPhone(String phone) {        /**         * * 手机号:目前全国有27种手机号段。 *         * 移动有16个号段:134、135、136、137、138、139、147、150、151、152         * 、157、158、159、182、187、188。其中147、157、188是3G号段,其他都是2G号段。 *         * 联通有7种号段:130、131、132、155、156、185、186。其中186是3G(WCDMA)号段,其余为2G号段。 *         * 电信有4个号段:133、153、180、189。其中189是3G号段(CDMA2000),133号段主要用作无线网卡号。 *         * 150、151、152、153、155、156、157、158、159 九个; *         * 130、131、132、133、134、135、136、137、138、139 十个; *         * 180、182、185、186、187、188、189 七个; *         * 13、15、18三个号段共30个号段,154、170、181、183、184暂时没有,加上147共27个。         */        Pattern p = Pattern                .compile("^((13\\d{9}$)|(17\\d{9}$)|(15\\d{9}$)|(18\\d{9}$)|(14\\d{9})$)");        Matcher m = p.matcher(phone);        return m.matches();    }

2.判断是不是合法的邮箱

 //判断email格式是否正确    public static boolean isEmail(String email) {        String str = "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";        Pattern p = Pattern.compile(str);        Matcher m = p.matcher(email);        return m.matches();    }

3.判断密码是不是密码数字字母组合6-20位,不包含特殊字符

 /**     * 密码登录规则     */    public boolean checkPwd(String userId) {        boolean flag;        try {            String check = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$";            Pattern regex = Pattern.compile(check);            Matcher matcher = regex.matcher(userId);            flag = matcher.matches();        } catch (Exception e) {            flag = false;        }        return flag;    }