论坛首页 入门技术论坛

JAVA里的常用正则表达式验证

浏览 3855 次
该帖已经被评为新手帖
作者 正文
   发表时间:2008-06-16  
前段时间整理了一下正则表达式的验证,现在帖出来,希望对大家有用处。
package com.geedao.util;

/**
 * @author 卢向东 lxdhdgss@gmail.com 检验输入
 */
public class Regex {

	/**
	 * 检查email输入是否正确
	 * 正确的书写格式为 username@domain
	 * @param value
	 * @return
	 */
	public boolean checkEmail(String value, int length) {
			return value.matches("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*")&&value.length()<=length;
	}

	/**
	 * 检查电话输入是否正确
	 * 正确格式 012-87654321、0123-87654321、0123-7654321
	 * @param value
	 * @return
	 */
	public boolean checkTel(String value) {
		return value.matches("\\d{4}-\\d{8}|\\d{4}-\\d{7}|\\d(3)-\\d(8)");	
	}

	/**
	 * 检查手机输入是否正确
	 * 
	 * @param value
	 * @return
	 */
	public boolean checkMobile(String value) {
		return value.matches("^[1][3,5]+\\d{9}");
	}

	/**
	 * 检查中文名输入是否正确
	 * 
	 * @param value
	 * @return
	 */
	public boolean checkChineseName(String value, int length) {
		return value.matches("^[\u4e00-\u9fa5]+$")&&value.length()<=length;
	}
	/**
	 * 检查HTML中首尾空行或空格
	 * @param value
	 * @return
	 */
	public boolean checkBlank(String value){
		return value.matches("^\\s*|\\s*$");
	}
	/**
	 * 检查字符串是否含有HTML标签
	 * @param value
	 * @return
	 */
	
	public boolean checkHtmlTag(String value){
		return value.matches("<(\\S*?)[^>]*>.*?</\\1>|<.*? />");
	}
	/**
	 * 检查URL是否合法
	 * @param value
	 * @return
	 */
	public boolean checkURL(String value){
		return value.matches("[a-zA-z]+://[^\\s]*");
	}
	/**
	 * 检查IP是否合法
	 * @param value
	 * @return
	 */
	public boolean checkIP(String value){
		return value.matches("\\d{1,3}+\\.\\d{1,3}+\\.\\d{1,3}+\\.\\d{1,3}");
	}
	/**
	 * 检查ID是否合法,开头必须是大小写字母,其他位可以有大小写字符、数字、下划线
	 * @param value
	 * @return
	 */
	public boolean checkID(String value){
		return value.matches("[a-zA-Z][a-zA-Z0-9_]{4,15}$");
	}
	/**
	 * 检查QQ是否合法,必须是数字,且首位不能为0,最长15位
	 * @param value
	 * @return
	 */
	
	public boolean checkQQ(String value){
		return value.matches("[1-9][0-9]{4,13}");
	}
	/**
	 * 检查邮编是否合法
	 * @param value
	 * @return
	 */
	public boolean checkPostCode(String value){
		return value.matches("[1-9]\\d{5}(?!\\d)");
	}
	/**
	 * 检查身份证是否合法,15位或18位
	 * @param value
	 * @return
	 */
	public boolean checkIDCard(String value){
		return value.matches("\\d{15}|\\d{18}");
	}
	/**
	 * 检查输入是否超出规定长度
	 * 
	 * @param length
	 * @param value
	 * @return
	 */
	public boolean checkLength(String value, int length) {
		return ((value == null || "".equals(value.trim())) ? 0 : value.length()) <= length;
	}

	/**
	 * 检查是否为空字符串,空:true,不空:false
	 * 
	 * @param value
	 * @return
	 */
	public boolean checkNull(String value) {
		return value == null || "".equals(value.trim());
	}

}

我自己根据书上和网上的资料综合整理的。
其他链接:
中小企业软件
千祥新闻
浙江赛孚
   发表时间:2008-06-16  
工具类:
是否用静态方法
异常是否需要抛出
0 请登录后投票
   发表时间:2008-06-17  
用JS更好吧
特别是CV库有个根据正则校正的tag
0 请登录后投票
   发表时间:2009-03-23  
terryzhou 写道
用JS更好吧
特别是CV库有个根据正则校正的tag

只是用js更快一点.
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics