日期:2014-05-16  浏览次数:20417 次

js表单检验
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'emp.jsp' starting page</title>
    <script type="text/javascript">
    	window.onload = function() {
    		document.getElementById("ok").onclick = function() {
    			//真实姓名(不能为空 ,没有其他要求)
    			var realnameValue = document.getElementById("realname").value;
    			if(ltrim(rtrim(realnameValue))==""||realnameValue==null||realnameValue==undefined) {
    				alert("真实姓名不能为空");
    				document.getElementById("realname").focus();
    				return false;
    			}
    			
    			//登录名不能为空,长度应该在5-8之间,可以包含中文字符(一个汉字算一个字符)):
    			var usernameValue = document.getElementById("username").value;
    			if(ltrim(rtrim(usernameValue))==""||usernameValue==null||usernameValue==undefined) {
    				alert("登录名不能为空");
    				document.getElementById("username").focus();
    				return false;
    			}
    			
    			//验证长度在5-8之间,字符包括[字母 数字 中文]
    			var pattern = /^[a-zA-Z0-9\u4e00-\u9fa5]{5,8}$/;
    			var flag = pattern.test(ltrim(rtrim(usernameValue)));
    			if(!flag) {
    				alert("登录名长度在5-8之间");
    				document.getElementById("username").focus();
    				return false;
    			}
    			
    			//不能为空,长度6-12字符或数字,不能包含中文字符
    			var pswValue = document.getElementById("psw").value;
    			if(ltrim(rtrim(pswValue))==""||pswValue==null||pswValue==undefined) {
    				alert("密码不能为空");
    				document.getElementById("psw").focus();
    				return false;
    			}
    			
    			//使用文本格式定义正则表达式,字符0-128之间
    			var pattern = /^[0-9a-zA-Z]{6,12}$/;
    			
    			//注意\d形式的的正则,如果使用文本格式不用加转义字符,如果使用构造函数定义,则需加转义字符
    			//var pattern = /^[\da-zA-Z]{6,12}$/;
    			
    			//使用构造函数定义正则表达式,没有字符限制
    			//var pattern = new RegExp("^[0-9a-zA-Z]{6-12}$");
    			//var pattern = new RegExp("^[\\da-zA-Z]{6-12}$");
    			
    			flag = pattern.test(ltrim(rtrim(pswValue)));
    			if(!flag) {
    				alert("密码长度为6-12字符或数字,不能包含中文字符");
    				document.getElementById("psw").focus();
    				return false;
    			}
    			
    			var psw2Value = document.getElementById("psw2").value;
    			if(pswValue!=psw2Value) {
    				alert("两次密码输入不一致");
    				document.getElementById("psw2").focus();
    				return false;
    			}
    			
    			var flag = false;
    			var genderElements = document.getElementsByName("gender");
    			for(var i = 0; i< genderElements.length; i++) {
    				if(genderElements[i].checked) {
    					flag = true;
    					break;
    				}
    			}
    			
    			if(!flag) {
    				alert("您没有第三种性别可选");
    				return false;
    			}
    			
    			var cardValue = document.getElementById("card").value;
    			if(ltrim(rtrim(cardValue))==""||cardValue==null||cardValue==undefined) {
    				alert("身价证不能为空");
    				document.getElementById("card").focus();
    				return false;
    			}
    			
    			var len = cardValue.length;
    			if(len!=15&&len!=18) {
    				alert("身价证必须为15位或18位");
    				return false;
    			}
    			
    			//验证15位身价证(貌似这个可以DEL);
    			if(len == 15) {
    				var pattern = /^\d{15}$/;
    				var flag = pattern.test(cardValue);
    				if(!flag) {
    					alert("您的15位身价证格式输入不正确");
    					document.getElementById("card").focus();
    					return false;
    				}
    			}
    			
    			//验证18位身价证
    			if(len == 18) {	
    				var pattern = /^\d{18}|\d{17}[X]{1}$/;
    				var flag = pattern.test(cardValue);
    				if(!flag) {
    					alert("您的18位身价证格式输入不正确");
    					document.getElementById("card").focus();
    					return false;
    				}
    			}
    			
    			//提交表单
				document.forms[0].submit();
    		}
    	}
    	
    	//去掉字符串左端空格
    	function ltrim(str) {
    		while(str.charAt(0) == " ") {
    			str.substring(1, str.length);
    		}
    		return str;
    	}
    	
    	//去掉字符串右端空格
    	function rtrim(str) {
    		while(str.charAt(str.l