8.正则表达式和生成验证码

一、生成验证码

public static String getRandomValidateCode() {
        return RandomUtil.getRandomNum(6);
}

二、正则表达式工具类

样例方法:
传入参数为电话号码

public static boolean isMobile(String mobile) {
  Pattern mobileP = Pattern.compile(RegularUtils.常量名);
  Matcher mobileM = mobileP.matcher(mobile);
  boolean mb = mobileM.matches();
  return mb;
}

工具

//手机号码正则表达式(国内)
private static final String REGEX_CHAIN_MOBILE_NUMBER = "^(1[3456789])[0-9]{9}$";
//用户名正则表达式
private static final String REGEX_USERNAME = "(![0-9]|[A-Za-z]*|[A-Za-z0-9]*){4,20}";
//用户密码正则表达式(包含A-Z,a-z,0-9,!@#$%^&*_)
private static final String REGEX_PASSWORD = "^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?![~,\\.#%'\\+\\*\\-:;^_`]+$)[~,\\.#%'\\+\\*\\-:;^_`0-9A-Za-z]{6,20}$";
//电子邮箱正则表达式
private static final String REGEX_EMAIL = "^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$";// 复杂匹配
//正则表达式:验证身份证
private static final String REGEX_ID_CARD_NO = "^(^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$)|(^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])((\\d{4})|\\d{3}[Xx])$)$";
//邮政编码
private static final String REGEX_Postcode_NO = "^[0-9]\\d{5}$";

在jsp中验证

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>用户注册</title>
		<link rel="stylesheet" href="../css/register.css" /> 
		<script>
//			检查账号
			function checkUid(){
				//1、获取用户输入的id
				var uid=document.getElementsByName("user_uid")[0].value;
				//2、获取显示信息的span标签
				var uidmeg=document.querySelector("#uidmeg");
				if(uid.length>=6 && uid.length<=18){
					uidmeg.style.color="green";
					uidmeg.innerHTML="√";
					return true;
				}else{
					uidmeg.style.color="red";
					uidmeg.innerHTML="<br/>用户id的长度必须在6-18位之间!";
					return false;
				}
			}
//			检查密码
			function checkRepwd(){
				var repwd=document.getElementsByName("user_repwd")[0].value;
				var pwd=document.getElementsByName("user_pwd")[0].value;
				var repwdmeg=document.querySelector("#repwdmeg");
				var pwdmeg=document.querySelector("#pwdmeg");
				var re=/^[^*]{1,15}$/;
				if(repwd==pwd && pwd.length!=0 && re.test(pwd)==true){
					repwdmeg.style.color="green";
					repwdmeg.innerHTML="√";
					return true;
				}else{
					repwdmeg.style.color="red";
					repwdmeg.innerHTML="<br/>两次密码不一致或格式不正确!";
					return false;
				}
			}
			//检查手机号
			function checkPhone(){
				var phone=document.getElementsByName("user_phone")[0].value;
				var pwdmeg=document.querySelector("#phonemeg");
				var re=/^(1[3456789])[0-9]{9}$/;
				if(phone.length!=0 && re.test(phone)==true){
					pwdmeg.style.color="green";
					pwdmeg.innerHTML="√";
					return true;
				}else{
					pwdmeg.style.color="red";
					pwdmeg.innerHTML="<br/>手机号格式不正确!";
					return false;
				}
			}
			//检查邮箱
			function checkEmail(){
				var email=document.getElementsByName("user_email")[0].value;
				var emailmeg=document.querySelector("#emailmeg");
				var re=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
				if(email.length!=0 && re.test(email)==true){
					emailmeg.style.color="green";
					emailmeg.innerHTML="√";
					return true;
				}else{
					emailmeg.style.color="red";
					emailmeg.innerHTML="<br/>邮箱格式不正确!";
					return false;
				}
			}
			//验证上传文件
			function checkFile(){
				var file=document.getElementsByName("pictureFile")[0].value;
				var filemeg=document.querySelector("#filemeg");
				if(file != ""){
					filemeg.style.color="green";
					filemeg.innerHTML="√";
					return true;
				}else{
					filemeg.style.color="red";
					filemeg.innerHTML="<br/>请上传身份证照片!";
					return false;
				}
			}
			
			
			
			//调用所有验证方法
			function checkAll(){
				var c1=checkUid();
				var c2=checkRepwd();
				var c3=checkPhone();
				var c4=checkEmail();
				var c5=checkFile();
				if(c1==true && c2==true && c3==true && c4==true && c5==true){
					alert("恭喜您!注册成功!");
					return true;
				}else{
					alert("遗憾!!注册失败!");
					return false;
				}
			}
		</script>
	</head>
	<body>
	<div id="box">
		<form action="/Aoa/regist" method="post" οnsubmit="return checkAll()" enctype="multipart/form-data">
			<h3>注册新用户</h3>
			<p>
				* 账  : <input type="text" name="user_uid" οnblur="checkUid()" />
				<span id="uidmeg"></span>
			</p>
			<p>
				* 登陆密码: <input type="password" name="user_pwd" />
				<span id="pwdmeg"></span>
			</p>
			<p>
				* 确认密码:<input type="password" οnblur="checkRepwd()" name="user_repwd" />
				<span id="repwdmeg"></span>
			</p>
			<p>
				* 电话:<input type="text" οnblur="checkPhone()" name="user_phone" />
				<span id="phonemeg"></span>
			</p>
			<p>
				* 邮箱:<input type="text" οnblur="checkEmail()" name="user_email" />
				<span id="emailmeg"></span>
			</p>
			<p>
				* 身份证:<input type="file" name="pictureFile" id="pictureFile"/>
				<span id="filemeg"></span>
			</p>
			<input type="submit" value="注&nbsp; &nbsp;&nbsp;  册" id="l"/>
			<br/><br/><br/>
			<input type="reset" value="重&nbsp; &nbsp; &nbsp; 置" id="a"/>
		</form>
	</div>
	</body>
</html>


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值