当前访客身份:游客 [ 登录 | 加入开源中国 ]

代码分享

当前位置:
代码分享 » Java  » 常用工具方法
分享到: 
收藏 +0
3
用于校验用户名、密码、手机号、邮箱和身份证等信息
标签: <无>

代码片段(1) [全屏查看所有代码]

1. [文件] Validator.java ~ 3KB     下载(405)     跳至 [1] [全屏预览]

package com.office.utility;

import java.util.regex.Pattern;

/**
 * 校验器:利用正则表达式校验邮箱、手机号等
 * 
 * @author liujiduo
 * 
 */
public class Validator {
	/**
	 * 正则表达式:验证用户名
	 */
	public static final String REGEX_USERNAME = "^[a-zA-Z]\\w{5,17}$";

	/**
	 * 正则表达式:验证密码
	 */
	public static final String REGEX_PASSWORD = "^[a-zA-Z0-9]{6,16}$";

	/**
	 * 正则表达式:验证手机号
	 */
	public static final String REGEX_MOBILE = "^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$";

	/**
	 * 正则表达式:验证邮箱
	 */
	public static final String REGEX_EMAIL = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";

	/**
	 * 正则表达式:验证汉字
	 */
	public static final String REGEX_CHINESE = "^[\u4e00-\u9fa5],{0,}$";

	/**
	 * 正则表达式:验证身份证
	 */
	public static final String REGEX_ID_CARD = "(^\\d{18}$)|(^\\d{15}$)";

	/**
	 * 正则表达式:验证URL
	 */
	public static final String REGEX_URL = "http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?";

	/**
	 * 正则表达式:验证IP地址
	 */
	public static final String REGEX_IP_ADDR = "(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)";

	/**
	 * 校验用户名
	 * 
	 * @param username
	 * @return 校验通过返回true,否则返回false
	 */
	public static boolean isUsername(String username) {
		return Pattern.matches(REGEX_USERNAME, username);
	}

	/**
	 * 校验密码
	 * 
	 * @param password
	 * @return 校验通过返回true,否则返回false
	 */
	public static boolean isPassword(String password) {
		return Pattern.matches(REGEX_PASSWORD, password);
	}

	/**
	 * 校验手机号
	 * 
	 * @param mobile
	 * @return 校验通过返回true,否则返回false
	 */
	public static boolean isMobile(String mobile) {
		return Pattern.matches(REGEX_MOBILE, mobile);
	}

	/**
	 * 校验邮箱
	 * 
	 * @param email
	 * @return 校验通过返回true,否则返回false
	 */
	public static boolean isEmail(String email) {
		return Pattern.matches(REGEX_EMAIL, email);
	}

	/**
	 * 校验汉字
	 * 
	 * @param chinese
	 * @return 校验通过返回true,否则返回false
	 */
	public static boolean isChinese(String chinese) {
		return Pattern.matches(REGEX_CHINESE, chinese);
	}

	/**
	 * 校验身份证
	 * 
	 * @param idCard
	 * @return 校验通过返回true,否则返回false
	 */
	public static boolean isIDCard(String idCard) {
		return Pattern.matches(REGEX_ID_CARD, idCard);
	}

	/**
	 * 校验URL
	 * 
	 * @param url
	 * @return 校验通过返回true,否则返回false
	 */
	public static boolean isUrl(String url) {
		return Pattern.matches(REGEX_URL, url);
	}

	/**
	 * 校验IP地址
	 * 
	 * @param ipAddr
	 * @return
	 */
	public static boolean isIPAddr(String ipAddr) {
		return Pattern.matches(REGEX_IP_ADDR, ipAddr);
	}

	public static void main(String[] args) {
		String username = "fdsdfsdj";
		System.out.println(Validator.isUsername(username));
		System.out.println(Validator.isChinese(username));
	}
}


开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»

发表评论 回到顶部 网友评论(10)

  • 1楼:浪里小白脸 发表于 2015-05-10 22:45 回复此评论
    验证密码不支持符号吧?
  • 2楼:liujiduo 发表于 2015-05-10 22:48 回复此评论

    引用来自“寂寞抽支烟”的评论

    验证密码不支持符号吧?
  • 3楼:浪里小白脸 发表于 2015-05-10 23:11 回复此评论

    引用来自“寂寞抽支烟”的评论

    验证密码不支持符号吧?

    引用来自“liujiduo”的评论

    我还没学过正则,但是看你写的看懂一些,如果要让他支持符号该怎么做呢?可不可以用u码?
  • 4楼:liujiduo 发表于 2015-05-11 09:15 回复此评论

    引用来自“寂寞抽支烟”的评论

    验证密码不支持符号吧?

    引用来自“liujiduo”的评论

    引用来自“寂寞抽支烟”的评论

    我还没学过正则,但是看你写的看懂一些,如果要让他支持符号该怎么做呢?可不可以用u码?
    如果需要支持符号的话就枚举出来,比如支持下划线:"^[a-zA-Z0-9_]{6,16}$" 密码最好不要支持太多特殊符号,一般只要字母数字+下划线组合就够了
  • 5楼:浪里小白脸 发表于 2015-05-11 13:12 回复此评论

    引用来自“寂寞抽支烟”的评论

    验证密码不支持符号吧?

    引用来自“liujiduo”的评论

    引用来自“寂寞抽支烟”的评论

    我还没学过正则,但是看你写的看懂一些,如果要让他支持符号该怎么做呢?可不可以用u码?

    引用来自“liujiduo”的评论

    如果需要支持符号的话就枚举出来,比如支持下划线:"^[a-zA-Z0-9_]{6,16}$" 密码最好不要支持太多特殊符号,一般只要字母数字+下划线组合就够了
    哦哦,谢谢
  • 6楼:YuanyuanL 发表于 2015-06-09 17:26 回复此评论
    把用途说的再仔细点就更好了
  • 7楼:回媚一笑万夫倒 发表于 2015-11-25 10:20 回复此评论
    身份证验证是个坑!!!!
  • 8楼:Laughing_Lz 发表于 2015-12-10 17:35 回复此评论
    现在的手机号验证 还对不对?想找个复制得了· ·又怕坑。。
  • 9楼:oldfeel 发表于 2016-11-15 20:54 回复此评论
    不支持 177 开头的...
  • 10楼:robinjia 发表于 2018-08-03 18:12 回复此评论
    你这个邮箱匹配正则有问题,匹配次数太多了,会被ReDos攻击的,你试试匹配dsddgsddg5ddg12dg12。([a-z0-9A-Z]+[_|\\.]?)+这里相当于a++这种形式的。
开源从代码分享开始 分享代码
liujiduo的其它代码 全部(5)...