`
qingBYqing
  • 浏览: 50490 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

邮箱&日期&IP地址&信用卡验证(正则表达式)

    博客分类:
  • Java
阅读更多
使用正则表达式匹配验证,存在不足,希望大家提供更优的验证表达式

package com.qingbyqing.job;

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

public class FormValid {

	public static void w(Object o) {
		System.out.println(o);
	}

	/**
	 * 邮箱验证:
	 */
	public static boolean isValidEmail(String email) {

		String regEmail = "^(?:\\w+\\.{1})*\\w+@(\\w+\\.)*\\w+$";
		Pattern pat = Pattern.compile(regEmail);
		Matcher mat = pat.matcher(email);

		if (mat.find()) {
			w("合法邮箱");
			return true;
		}
		w("邮箱格式错误!");
		return false;
	}

	/**
	 * ip 地址的验证
	 * 
	 */
	public static boolean isValidIp(String strIp) {

		String reIp = "\\b((\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])(\\b|\\.)){4}";
		Pattern com = Pattern.compile(reIp);
		Matcher mat = com.matcher(strIp);
		if (mat.find()) {
			w("IP地址格式正确");
			return true;
		}

		w("Ip地址格式错误");
		return false;
	}

	/**
	 * 验证日期
	 * 
	 */
	public static boolean isValidDate(String sDate) {
		String reDate = "(?:[1-9]|0[1-9]|[12]\\d|3[0-1])(\\/|\\-)(?:[1-9]|0[1-9]|1[0-2])(\\/|\\-)(?:19|20\\d\\d)";
		Pattern com = Pattern.compile(reDate);
		Matcher mat = com.matcher(sDate);
		if (mat.find()) {

			w("日期格式正确");
			return true;
		}

		w("日期格式错误");

		return false;
	}

	/**
	 * 验证信用卡号
	 * 
	 */
	public static boolean isValidCard(String sCard) {
		String reCard = "^(4\\d{12}(?:\\d{3})?)$";
		Pattern com = Pattern.compile(reCard);
		Matcher mat = com.matcher(sCard);
		
		
		if (mat.find()) {
			w(reCard);
			w("格式正确");

			// 判断是否合法
			boolean luhn = FormValid.isLuhn(sCard);

			if (luhn) {
				w("卡号是合法的");
				return true;
			} else {
				w("卡号不合法");
				return false;
			}

		}
		w("格式不正确");

		return false;
	}
	
	/**
	 * luhn算法
	 * 
	 */
	
         public static boolean isLuhn(String strNum){
        	 
        	 int oddSum=0;
        	 int evenSum=0;
        	 boolean isOdd=true;
        	 
        	 for (int i=strNum.length()-1;i>=0;i--){
        		 char cNum=strNum.charAt(i);
        		
        		 int   num=Integer.parseInt(cNum+"");
        		 
        		 System.out.print("第"+i+"个"+"是"+"\t"+num+"\n");
        	 
        		 
        		if(isOdd){
        			 oddSum+=num;
        		 }else{
        			 num=num*2;
        			 if(num>9){
        				 num=num%10+1;
        			 }
        			 evenSum=evenSum+num;
        		 }
        		 isOdd=!isOdd;
        	 }
        	 
        		  return ((evenSum+oddSum)%10==0);
         }

	/**
	 * 测试
	 * 
	 */

	public static void main(String args[]) {

		
		 String email = "qing.qingbyqing@gmail.vip.com";//邮箱测试
		 FormValid.isValidEmail(email);
		  String strIp="1.10.111.255";//IP地址测试
		 FormValid.isValidIp(strIp);
		  
		  String sDate="03/03/1911"; 
		  FormValid.isValidDate(sDate);//日期测试
		

		String strNum = "4432123456788881";
		w(FormValid.isValidCard(strNum));//信用卡测试
	
		
		
	}
}


分享到:
评论

相关推荐

    C#使用正则表达式验证IP地址

    使用正则表达式来判断用户输入的IP地址格式是否正确

    java正则表达式验证IP地址

    Java正则表达式验证IP地址 Java正则表达式验证IP地址是指使用Java语言中的正则表达式来验证IP地址是否符合标准。IP地址是指在网络通信中用来标识设备的地址,它是一种逻辑地址,通过它可以找到网络中的设备。在...

    IP地址的正则表达式

    在探讨“IP地址的正则表达式”这一主题时,我们首先需要理解IP地址的基本构成以及正则表达式的原理。IP地址(Internet Protocol Address)是互联网协议为网络上的每个节点分配的一个唯一标识符,用于在网络中定位和...

    IP 正则表达式验证

    javascript 手机号码正则表达式验证函数JS正则表达式验证数字代码JavaScript正则表达式验证身份证号码是否合法(两种方法)jquery正则表达式验证(手机号、身份证号、中文名称)邮箱地址正则表达式验证代码合集软件...

    android验证ip地址的正则表达式

    通过上述分析和代码示例,我们可以看到如何在Android应用程序中使用正则表达式来验证IP地址的有效性。这种方法不仅简单易懂,而且非常实用。在实际开发中,还可以根据具体需求进一步扩展和优化正则表达式的实现。

    IP验证正则表达式

    给定文件中的标题、描述及部分内容聚焦于“IP验证正则表达式”,这是一项关键的技术知识点,用于确保输入的字符串符合IPv4地址的标准格式。 ### IP地址基础知识 IP(Internet Protocol)地址是互联网上每个设备的...

    java中用正则表达式检测IP地址是否合理

    - 定义了一个静态常量`REGEX_IP`存储了用于验证IP地址的正则表达式。 - `validateIP`方法接收一个字符串参数`ipAddress`,并使用`matches`方法与定义的正则表达式进行匹配,如果匹配成功,则返回`true`,表示IP地址...

    IP地址检查正则表达式

    通过上述分析,我们不仅学习了如何构建一个精确的IP地址验证正则表达式,还了解了如何在Java中正确地应用正则表达式来进行数据验证。这对于任何从事网络编程或数据处理的开发者来说,都是一项非常实用的技能。

    android IP和端口的验证方法 正则表达式

    下面我们将详细探讨Android中如何使用正则表达式来验证IP地址和端口号。 1. **IP地址验证**: - IPv4:一个有效的IPv4地址由四个0-255之间的数字组成,每个数字之间用`.`分隔。对应的正则表达式为: ``` ^((25[0...

    正则表达式大全 - 收集的最常用正则表达式

    12. 匹配IP地址:`d+.d+.d+.d+` - 这个正则表达式可以识别标准IPv4地址,如192.168.0.1。 此外,还有一些用于匹配特定类型的数字的正则表达式,如正整数、负整数、整数、浮点数等。这些在处理数值数据时非常有用。 ...

    正则表达式验证url

    正则表达式验证url 验证url不能带 页面 如www.baidu.com/3.html 可以是 ip地址

    正则表达式大全.docx

    4. 电子邮箱地址:`/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/` - 这个正则表达式用于验证电子邮件地址的格式,包括用户名、@符号、域名和顶级域名。 5. URL:`/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2...

    常用正则表达式大全.txt

    通过定义一组规则来识别文本中的特定模式,正则表达式被广泛应用于各种场景,如数据验证、搜索替换等。 ### 数字验证 1. **纯数字验证**:只允许输入纯数字。 - 正则表达式:`^[0-9]*$` - 示例:`12345` 2. **...

    正则表达式验证邮件地址,日期,数字,字母,Ip地址

    正则表达式验证邮件地址,日期,数字,字母,Ip地址正则表达式验证邮件地址,日期,数字,字母,Ip地址

    各种正则表达式验证

    本文将详细介绍几种常见类型的正则表达式验证规则,包括邮箱、数字、日期、电话号码、IP地址、QQ号码、MSN账号以及身份证号码。 #### 二、正则表达式验证规则详解 ##### 1. 英文字符验证 ```javascript this.reg....

    Java正则表达式 Java 正则表达式

    - 例如,可以使用正则表达式检查输入的IP地址是否符合规范,从网页文本中提取电子邮件地址或者超链接。 2. **核心类** - `java.lang.String`:提供了`matches()`方法,可以直接对字符串进行正则匹配。 - `java....

    正则表达式 Java 判断字串是否合理

    根据给定的文件信息,我们可以总结出以下...综上所述,通过以上知识点可以看出,Java正则表达式在处理各种格式的数据验证时非常实用且灵活。开发者可以根据具体需求选择合适的正则表达式来提高代码的健壮性和安全性。

    C#中使用正则表达式验证Email格式、IP地址格式和URL网址格式

    本文将详细探讨如何使用C#中的正则表达式来验证电子邮件(Email)、IP地址以及URL网址的格式。 ### 一、验证Email格式 电子邮件地址是互联网上最常用的联系方式之一,其格式通常包含用户名部分和域名部分,两者...

    javascript正则表达式表单验证大全

    这个复杂的正则表达式用于验证电子邮件地址的有效性,确保其符合常见的电子邮件格式标准。它检查是否有一个或多个单词字符(字母、数字或下划线),后跟可选的连字符、加号或句点,然后是‘@’符号,后面跟着更多的...

    java正则表达式验证

    java正则表达式验证,包含:验证邮箱、验证IP地址、验证网址Ur、l验证电话号码、验证输入密码条件(字符与数据同时出现)、验证输入密码长度 (6-18位)、验证输入邮政编号等

Global site tag (gtag.js) - Google Analytics