Java 正则表达式 之 注册验证

时间:2024-03-07 19:35:16

http://www.verejava.com/?id=16994944659329

package com.reg;

public class TestReg
{
	public static void main(String[] args)
	{
		System.out.println(testTel("+22861232233333"));
	}
	
	/**
	 * 5.	国际电话号码验证
			以数字或+开头 
			后面的必须是数字长度在 12 到 13

	 */
	public static boolean testTel(String tel)
	{
		String regex="[+\\d]?\\d{12,13}";
		return tel.matches(regex);
	}
	
	/**
	 * 4.	注册电子邮箱验证
				邮箱地址必须包含@字符
				邮箱@的左边必须以字母, 下划线, 数字开头, 且必须有一个
				邮箱@的左边除了开头字母其他的可以是字母, 下划线, 数字, 点号 . 小杠 -
				邮箱@的右边必须有 . 点号
				在 @ 和 . 之间必须以字母, 下划线, 数字开头, 且除了开头字母其他的可以是字母, 下划线, 数字, 点号 . 小杠 -
				在 . 点号后面至少有一个 字母, 下划线, 数字开头

	 */
	public static boolean testEmail(String email)
	{
		String regex="(\\w+)([\\w+.-])*@(\\w+)([\\w+.-])*\\.\\w+";
		return email.matches(regex);
	}
	
	/**
	 * 身份证验证
		身份证号码必须为15位或18位数字
	 */
	public static boolean testIdentity(String identity)
	{
		String regex="\\d{15}|\\d{18}|\\d{17}X";
		return identity.matches(regex);
	}
	
	/**
	 * 2.	论坛注册用户名验证
			必须以字母开头
			只能包括 字母 , 下划线 , 数字
			长度必须在6 到 10 之间

	 */
	public static boolean checkUsername(String username)
	{
		//String regex="[a-zA-Z][0-9a-zA-Z_]{5,9}";
		//String regex="[a-zA-Z][\\da-zA-Z_]{5,9}";// \d  要转成 \\d
		String regex="[a-zA-Z]\\w{5,9}";
		return username.matches(regex);
	}
	
	/**
	 * 1.	验证码必须是数字, 并且是4位数字
	 * @param telephone
	 */
	public static boolean testValidCode(String code)
	{
		//String regex="[0-9][0-9][0-9][0-9]";
		String regex="[0-9]{4}";
		return code.matches(regex);
	}
	
	public static void testTelephone2(String telephone)
	{
		String regex="1[0-9]{10}";
		boolean b=telephone.matches(regex);
		if(b)
		{
			System.out.println("有效电话号码");
		}
		else
		{
			System.out.println("无效电话号码");
		}
	}
	/**
	 * 题目: 注册的时候, 验证输入手机号码的有效性 
		要求: 
			必须是1开头的
			长度为11位
			手机号码必须是数字

	 * @param args
	 */
	public static void testTelephone(String telephone)
	{
		//是否是1开头的
		if(!telephone.startsWith("1"))
		{
			System.out.println("电话号不是1开头的");
		}else if(telephone.length()!=11)//判断电话号码是否 11 位
		{
			System.out.println("电话号码不是11位的");
		}else
		{
			//手机号码是否为数字
			String num="0123456789";
			char[] chars=telephone.toCharArray();
			boolean isValid=true;
			for(int i=0;i<chars.length;i++)
			{
				String s=String.valueOf(chars[i]);
				if(num.indexOf(s)<0)
				{
					isValid=false;
				}
			}
			if(isValid)
			{
				System.out.println("电话号码输入有效");
			}
			else
			{
				System.out.println("电话号码输入有无效数字");
			}
		}
	}
	
	
}

http://www.verejava.com/?id=16994944659329