1. 程式人生 > >Web前端 | 登錄檔單驗證

Web前端 | 登錄檔單驗證

註冊格式要求:

頁面中所有項均為必填項

登入賬號:只能是數字或字母且以字母開頭

密碼:大於8位且需要有字母和數字之外的字元

姓名:格式為2-4個漢字

出生年月日:格式為yyyy-mm-dd 【eg:1998-02-17】

郵編:正確的6位數字郵編

E-mail:基本格式

Html程式程式碼如下(頁面程式,封裝在index.html中):

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>使用者註冊頁面</title>
		<link rel="stylesheet" type="text/css" href="css.css"/>
	</head>
	<body>
		<h1 align="center"><strong>使用者註冊</strong></h1>
		<h3 align="center"><em><a href="001.html"><font face="楷體">·格式要求(註冊前必讀)</font></a></em></h3>
		<div class="ym">
		<form action="" method="post">
			<table>
			<tr>
				<td>登入賬號</td>
				<td><input name="Name" type="text" placeholder="請輸入您的登入賬號"></td>
			</tr>
			
			<tr>
				<td>密碼</td>
				<td><input name="pw" type="password" placeholder="請輸入您的密碼"></td>
			</tr>
			
			<tr>
				<td>確認密碼</td>
				<td><input name="pw1" type="password" placeholder="請再次輸入您的密碼"></td>
			</tr>
			
			<tr>
				<td>姓名</td>
				<td><input name="name" type="text" placeholder="請輸入您的姓名"></td>
			</tr>
			
			<tr>
				<td>身份證號碼</td>
				<td><input name="identy" type="text" placeholder="請輸入您的身份證號碼"></td>
			</tr>
			
			<tr>
				<td>出生年月日</td>
				<td><input name="birth" type="text" placeholder="請輸入您的出生年月"></td>
			</tr>
			
			<tr>
				<td>住址</td>
				<td><input name="adress" type="text" placeholder="請輸入您的住址"></td>
			</tr>
			
			<tr>
				<td>郵編</td>
				<td><input name="ecode" type="text" placeholder="請輸入您的郵政編碼"></td>
			</tr>
			
			<tr>
				<td>E-mail</td>
				<td><input name="email" type="text" placeholder="請輸入您的email"></td>
			</tr>
			
			<tr>
				<td><input type="submit" value="提交" onclick="return last()" ></td>
				<td><input type="reset" value="重置">      
					<input type="button" value="關閉" onmousemove="window.close()"/ ></td>
			</tr>
			</table>
		</form>
        </div>
        <script type="text/javascript" src="js.js" charset="UTF-8"></script>
	</body>
</html>

Html程式碼檔案如下(跳轉頁面程式碼):

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>使用者註冊格式要求</title>
	</head>
	<body>
		<h1 align="center">註冊格式要求</h1>
		<p align="center"><font color=#CD5C5C size="6" face="楷體"><strong>頁面中所有項均為必填項,請勿漏填</strong></font></p>
		<p align="center"><font color=#CD5C5C> 登入賬號:</font>只能是數字或字母且以字母開頭</p>
		<p align="center"><font color=#CD5C5C>密碼:</font>大於8位且需要有字母和數字之外的字元</p>
		<p align="center"><font color=#CD5C5C>姓名:</font>格式為2-4個漢字</p>
		<p align="center"><font color=#CD5C5C>出生年月日:</font>格式為yyyy-mm-dd 【eg:1998-02-17】</p>
		<p align="center"><font color=#CD5C5C>郵編:</font>正確的6位數字郵編</p>
		<p align="center"><font color=#CD5C5C>E-mail:</font>基本格式</p>
		
	</body>
</html>

Css程式碼檔案如下(封裝在css.css檔案中):

	body{
		background:url(img/time.jpg) center center;
		width: 100%;
		height: 100%;
		background-size: cover;
		}
	h1{
		align-content: center;
		text-shadow: 0 8px 5px rgba(0,0,8,.3);
		color: indianred;
		font-size: 48px;
	}	
 	.ym{
 		width: 310px;
  		border:px solid write;
   		padding: auto;
   		margin: auto
 }

Javascript程式碼檔案如下(實現表單驗證的功能程式,封裝在js.js檔案中):

	function print99(x){
		while(x.length>0 && x.charAt(0)==' ')
	 		x = x.substring(1,x.length);
		while(x.length>0&&x.charAt(x.length-1)==' ')
			x = x.substring(0,x.length-1);
		return x;
	}
	
	function isNull(elem,message){
		var va=print99(elem.value);
		if(va==""){
			alert(message);
			elem.focus();
			return false;
		}
		return true;
	}

	function checkName(){
		var first=document.forms[0].Name.value.charAt(0);
		var exp=/^[a-zA-Z0-9]+$/;
		if(isNull(document.forms[0].Name,"賬號不能為空,請輸入賬號!")){
			if(first>='a'&&first<='z'||first>='A'&&first<='Z'){
			}
			else{
				alert("登入賬號要求以字母開頭,請您重新輸入!");
				document.forms[0].Name.focus();
				return false;
			}
			if(!exp.test(document.forms[0].Name.value)){
				alert("賬號必須是字母或數字!");
				document.forms[0].Name.focus();
				return false;
			}
			return true;
		}else
			{
			return false;
		}
	}

	function checkpw(){
		var exp=/^[A-Za-z0-9]+$/;
		if(isNull(document.forms[0].pw,"密碼不能為空,請輸入密碼!")){
			if(document.forms[0].pw.value.length<=8){
				alert("密碼必須大於8位!");
				document.forms[0].pw.focus();
				return false;
			}
			else{
				if(exp.test(document.forms[0].pw.value)){
					alert("密碼需要包含其他字元!");
					document.forms[0].pw.focus();
					return false;
				}
			}
		}
		else{
			return false;
		}
		if(document.forms[0].pw.value!=document.forms[0].pw1.value){
			alert("兩次密碼輸入不同!");
			document.forms[0].pw.focus();
			return false;
		}
		return true;
	}
	
    function checkname(){
    	var exp =/^[\u4e00-\u9fa5]{2,4}$/i;
    	if(isNull(document.forms[0].name,"姓名不能為空,請輸入姓名")){
 			if (!exp.test(document.forms[0].name.value)) {
 				alert("請輸入正確格式的姓名!");
 				document.forms[0].name.focus();
				return false;
 			}
 			return true;
 		}
 		else{
			return false;
 			}
    }
    
    function checkIdenty(){
		var bir=document.forms[0].birth.value;
		var ide=document.forms[0].identy.value;
		var biride=ide.substring(6,10)+"-"+ide.substring(10,12)+"-"+ide.substring(12,14);
		if(isNull(document.forms[0].identy,"身份證號碼不能為空,請輸入")){
			if(ide.length!=18){
				alert("請輸入正確格式的身份證號碼(18位)");
				document.forms[0].identy.focus();
				return false;
			}else
			{
				if(bir!=biride){
					alert("您的身份證資訊與生日不符合,請重新輸入!");
					document.forms[0].identy.focus();
					return false;
				}
			}
			return true;
		}
		else{
			return false;
		}
	}
    
	function checkecode(){
		var exp=/^[0-9]+$/;
		if(isNull(document.forms[0].ecode,"郵編不能為空,請輸入")){
			if(document.forms[0].ecode.value.length!=6){
				alert("請輸入正確格式的郵政編碼(6位)");
				document.forms[0].ecode.focus();
				return false;
			}else{
				if(!exp.test(document.forms[0].ecode.value)){
					alert("郵編為數字");
					document.forms[0].ecode.focus();
					return false;
				}
			}
			return true;
		}
		else{
			return false;
		}
	}
	
	function checkEmail(){
		var exp=/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
		if(isNull(document.forms[0].email,"Email不能為空,請輸入")){
			if(!exp.test(document.forms[0].email.value)){
				alert("Email格式錯誤!");
				document.forms[0].email.focus();
				return false;
			}
			return true;
		}
		else{
			return false;
	}
}

	function last(){
		if(checkName()&&checkpw()&&checkname()&&checkIdenty()&&checkecode()&&checkEmail()){
			document.forms[0].submit();
			return true;
		}
		return false;
	}

通過以上四個檔案即可實現一個簡單的登錄檔單驗證的功能(本程式中的time.jpg檔案在《Web前段程式設計基礎——編寫簡易計算器》博文 中的time.jpg相同,在此不再上傳。)

執行頁面如下,並可實現驗證功能: