`

正则验证

阅读更多
package com.ks.tools;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author 李英夫
 * @ClassName KSValidate
 * @Version
 * @ModifiedBy
 * @Copyright @ 2009 H&L Technology Inc.
 * @date 2009-12-31 下午02:16:25
 * @description 正则验证,只要是包含就返回true
 */
public class KSValidate {

	// 合法字符正则表达式
	private final static String LAWFUL_EXPREG_STR = ".*(<script|select|update|delete|insert|').*";
	//用户名正则格式验证
	private final static String USER_PATTERN_STR="^[a-z0-9A-Z][a-zA-Z0-9_]{5,15}$";
	// 手机号码正则表达式
	private final static String MOBILETELL_EXPREG_STR = "^(?:13\\d|15[89])-?\\d{5}(\\d{3}|\\*{3})$";
	// 电话号码,传真正则表达式(兼容格式: 国家代码(4到5位)-区号(3到4位)-电话号码(7到8位)
	private final static String TELL_EXPREG_STR = "^(([0]\\d{3,4}-)?(0\\d{2,3})-)?(\\d{7,8})$";
	// QQ
	private final static String QQ_EXPREG_STR = "^[1-9]\\d{4,8}$";
	// 汉字
	private final static String CHINESE_EXPREG_STR = "^[\u4e00-\u9fa5]+$";
	// 邮箱
	private final static String EMAIL_EXPREG_STR = "^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*[0-9a-zA-Z]+))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|NET|com|COM|gov|GOV|mil|MIL|org|ORG|edu|EDU|int|INT)$";
	// 邮编
	private final static String POSTCODE_EXPREG_STR = "^[1-9]\\d{5}(?!\\d)$";
	// 日期 yyyy-mm-dd
	private final static String DATE_EXPREG_STR = "^((((1[6-9]|[2-9]\\d)\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$";
	// 自然数
	private final static String NATURE_NUMBER = "^[1-9]\\d*|0$";
	// 非负整数
	private final static String SIGNED_INTEGER_NUMBER = "^\\d+$";
	// 
	private static String SENSITIVITY_WORD = "sensitivityWord";
	private static String SENSITIVITY_WORD_ALL_TEXT = "sensitivityWord_allText";
	/**
	 * 验证用户名格式是否正确,正确返回true
	 * @author wangdawei
	 * @date 2010-2-24 上午09:58:19
	 * @param text
	 * @return boolean
	 */
	public static boolean isSpecialUserName(String text) {
		return matchingText(USER_PATTERN_STR, text);
	}
	/**
	 * 验证是否是正整数,包含0
	 * 
	 * @author 李英夫(2009-12-31 下午02:25:16)
	 * @param inVal
	 * @return boolean
	 */
	public static boolean isSignedIntegerNumber(String text) {
		return matchingText(SIGNED_INTEGER_NUMBER, text);
	}

	/**
	 * 验证是否是数字,包含浮点数
	 * 
	 * @author 李英夫(2009-12-31 下午02:22:16)
	 * @param inVal
	 * @return boolean
	 */
	public static boolean isDigit(String inVal) {
		if (inVal == null || inVal.length() < 1)
			return false;
		boolean isRight = true;
		try {
			Float.parseFloat(inVal);
		} catch (NumberFormatException nfe) {
			isRight = false;
		}
		return isRight;
	}

	/**
	 * 是否存在非法字符,存在则返回true
	 * 
	 * @author 李英夫(2009-12-31 下午02:26:16)
	 * @param text
	 * @return boolean
	 */
	public static boolean isSpecialword(String text) {
		return matchingText(LAWFUL_EXPREG_STR, text);
	}

	/**
	 * 电话,正确则返回true
	 * 
	 * @author 李英夫(2009-12-31 下午02:26:16)
	 * @param text
	 * @return boolean
	 */
	public static boolean telPhone(String text) {
		return matchingText(TELL_EXPREG_STR, text);
	}
	
	/**
	 * 是否是手机号码
	 * 
	 * @author 李英夫(2009-12-31 下午02:27:44)
	 * @param text
	 * @return boolean
	 */
	public static boolean isMobilPhone(String text) {
		return matchingText(MOBILETELL_EXPREG_STR, text);
	}

	/**
	 * 是否是QQ
	 * 
	 * @author 李英夫(2009-12-31 下午02:29:50)
	 * @param text
	 * @return boolean
	 */
	public static boolean isQQ(String text) {
		return matchingText(QQ_EXPREG_STR, text);
	}

	/**
	 * 是否是汉字
	 * 
	 * @author 李英夫(2009-12-31 下午02:31:53)
	 * @param text
	 * @return boolean
	 */
	public static boolean isChinese(String text) {
		return matchingText(CHINESE_EXPREG_STR, text);
	}

	/**
	 * 是否是合法邮编
	 * 
	 * @author 李英夫(2009-12-31 下午02:32:57)
	 * @param text
	 * @return boolean
	 */
	public static boolean isPostCode(String text) {
		return matchingText(POSTCODE_EXPREG_STR, text);
	}

	/**
	 * 是否是电子邮件
	 * 
	 * @author 李英夫(2009-12-31 下午02:33:49)
	 * @param text
	 * @return boolean
	 */
	public static boolean isEMail(String text) {
		return matchingText(EMAIL_EXPREG_STR, text);
	}

	/**
	 * 是否是yyyy-MM-dd格式的日期
	 * 
	 * @author 李英夫(2009-12-31 下午02:34:33)
	 * @param text
	 * @return boolean
	 */
	public static boolean isDate(String text) {
		return matchingText(DATE_EXPREG_STR, text);
	}

	/**
	 * 是否是自然数
	 * @author 李英夫(2009-12-31 下午02:35:24)
	 * @param text
	 * @return boolean
	 */
	public static boolean isNatureNumber(String text) {
		return matchingText(NATURE_NUMBER, text);
	}

	/**
	 * 有敏感词返回true
	 * @author 李英夫(2010-1-21 下午02:13:01)
	 * @param text
	 * @return boolean
	 */
	public static boolean isSensitivityWord(String text){
		try {
			String sw = PropertiesLoader.getText(SENSITIVITY_WORD_ALL_TEXT);
			return matchingText(sw, text);
		} catch (Exception e) {
			e.printStackTrace();
			return true;
		}
	}
	
	/**
	 * 替换敏感词
	 * @author 李英夫(2010-1-21 下午04:48:04)
	 * @param text
	 * @param newWord
	 * @return String
	 */
	public static String replaceSensitivityWord(String text, String newWord){
		try {
			Pattern p = Pattern.compile(PropertiesLoader.getText(SENSITIVITY_WORD)); // 正则表达式
			Matcher m = p.matcher(text); // 操作的字符串
			return m.replaceAll(newWord);
		} catch (Exception e) {
			e.printStackTrace();
			return "";
		}
	}
		/**
	 * 正则验证
	 * @author 李英夫(2009-12-31 下午02:20:16)
	 * @param expression
	 * @param text
	 * @return boolean
	 */
	public static boolean matchingText(String expression, String text) {
		boolean bool = false;
		if (expression != null && !"".equals(expression) && text != null
				&& !"".equals(text)) {
			Pattern p = Pattern.compile(expression); // 正则表达式
			Matcher m = p.matcher(text); // 操作的字符串
			bool = m.matches();
		}
		return bool;
	}
	
	/**
	 * 替换Html中的form标签、on..事件属性、href='javascript...'引用
	 * @author 李英夫(2010-5-6 上午09:07:52)
	 * @param src
	 * @return String
	 */
	public static String replaceFOH(String src){
		return src.replaceAll("<form.*?</form>|on[a-zA-z]+=([\"']?)[^\"']*\\1|href=([\"']?)javascript:[^\"']*\\2", "");
	}
}

分享到:
评论
5 楼 lizhiping116 2012-08-10  
求判断字符串中是否有空格
4 楼 liuzhongzhou2721 2012-01-05  
:  
3 楼 liuzhongzhou2721 2012-01-05  
   
2 楼 liuzhongzhou2721 2012-01-05  
[img][/img]
1 楼 liuzhongzhou2721 2012-01-05  
来看看了,好东西呀

相关推荐

    JS input正则验证大全

    本资源包“JS input正则验证大全”主要聚焦于使用JavaScript进行输入框(input)的各种类型的数据验证,包括英文、中文、邮箱、手机号、银行卡和身份证等常见字段的正则校验规则。以下是对这些知识点的详细说明: 1...

    autoit 正则验证工具

    【标题】:“AutoIt 正则验证工具” 【描述】中的“AutoIt 正则验证工具”是一款基于AutoIt编程语言开发的实用程序,它的主要功能是通过穷举的方法来测试和验证正则表达式的完备性和正确性。正则表达式(Regular ...

    WPF自定义正则验证控件

    总结来说,自定义WPF正则验证控件的关键在于创建一个继承自`ValidationRule`的类,并实现`Validate`方法。在XAML中,通过`Binding.ValidationRules`属性将这个自定义规则应用到文本框的`Binding`上。这样,我们就...

    PHP使用正则验证数据

    根据提供的代码示例,可以看到一个简单的正则验证函数 `regex()` 的实现。该函数接受两个参数:待验证的值 `$value` 和验证规则 `$rule`。下面将详细介绍这个函数的实现细节及其应用: ```php /** * 验证数据 * ...

    JS 正则验证表单

    **JS正则验证表单**是前端开发中一个至关重要的环节,主要用于确保用户输入的数据符合预设的格式,从而提高数据质量和应用安全性。在本文中,我们将深入探讨JavaScript中的正则表达式及其在表单验证中的应用。 正则...

    正则验证大全

    "正则验证大全"通常指的是一个包含各种正则表达式模式的集合,用于解决各种常见的数据验证需求。 在JavaScript(JS)中,正则表达式是通过使用`/pattern/flags`语法来创建的,其中`pattern`是实际的正则表达式,`...

    javascript常用正则验证

    常用正则验证,各种常用验证包含,汉字、手机号、电话号码、email、金额、特殊字符等常见完整js类库。

    正则验证规则,最全,最实用

    "正则验证规则,最全,最实用"的标题表明我们将探讨一套全面且实用的正则表达式规则,这些规则适用于多种验证需求。 描述中提到的"最全最实用的正则验证插件,含调用示例"可能指的是一个JavaScript库或者工具,它...

    正则验证软件中文版正则验证软件中文版

    正则验证软件中文版是一款专为中文用户设计的工具,它简化了正则表达式的使用,提供了友好的界面和丰富的功能,帮助开发者和非开发者更加高效地进行文本模式匹配。 首先,要使用这款正则验证软件中文版,你需要确保...

    快速正则验证工具

    "快速正则验证工具" 提供了便捷的方式来辅助开发者进行正则表达式的测试和验证,使得在编程过程中能够更高效地检查和调试正则表达式。 正则表达式的概念: 1. **基础字符**:正则表达式由一些基本字符构成,如字母...

    挺好用的正则验证程序

    "挺好用的正则验证程序"是专门为开发者设计的一款实用工具,它的主要功能是帮助用户检查和测试自己的正则表达式是否符合预期,确保在实际应用中的正确性。 该程序的核心功能包括: 1. **验证功能**:用户可以输入...

    JS正则验证大全 (.Net客户端验证)

    "JS正则验证大全 (.Net客户端验证)"这个资源集成了多种常见的JavaScript正则表达式,用于各种常见数据类型的验证,如电子邮件、电话号码、日期等。 正则表达式(Regular Expression)是模式匹配工具,可以用来进行...

    正则验证软件 英文版正则验证软件 英文版

    英文版的正则验证软件,如"RegexTester.exe",是专门用来测试和调试正则表达式的工具,对于非中文环境下的开发者尤其重要。 正则表达式的基本结构和符号包括: 1. 字符匹配:"."代表任意字符,"\d"表示数字,"\w...

    正则验证软件正则验证软件

    这款名为“正则验证软件”的程序,显然就是专为.NET环境设计的,用于帮助开发者高效地进行正则表达式的验证工作。 .NET框架提供了丰富的正则表达式支持,主要通过System.Text.RegularExpressions命名空间中的Regex...

    表单兼容布局和正则验证

    "表单兼容布局和正则验证"是一个针对移动端开发的重要课题,旨在确保用户界面在各种屏幕尺寸上都能保持良好的可用性和视觉一致性。这个主题涵盖了多个关键知识点,包括rem布局、CSS3媒体查询、JavaScript屏幕适配...

    javascript表单正则验证自定义提示

    "javascript表单正则验证自定义提示"这一主题聚焦于利用正则表达式(Regular Expressions)进行表单验证,并通过自定义提示来优化用户交互。 正则表达式是一种强大的文本处理工具,它可以用来匹配、查找、替换和...

    正则验证手机号码

    ### 正则验证手机号码知识点解析 在进行用户信息验证时,确保输入数据的有效性和准确性是非常重要的一步。其中,手机号码验证是常见的需求之一。本文将深入探讨如何使用正则表达式来验证手机号码,并结合给定的部分...

    php常用表单正则验证类.zip

    这个“php常用表单正则验证类.zip”压缩包提供了一个用于PHP的实用表单验证类,可以帮助开发者更方便地处理表单数据的验证工作。下面我们将详细探讨正则表达式验证和PHP类库在表单验证中的应用。 首先,让我们了解...

    JS正则验证表单

    **JS正则验证表单** 在网页开发中,表单验证是必不可少的一部分,它能确保用户输入的数据符合我们的预期,防止无效数据提交到服务器。JavaScript(JS)与正则表达式(RegEx)的结合使用,可以实现强大的客户端验证...

    正则验证工具非常好用

    非常好用的正则验证工具 非常好用的正则验证工具

Global site tag (gtag.js) - Google Analytics