论坛首页 Web前端技术论坛

javascript表单验证工具类

浏览 2455 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-08-05  
刚刚写的一段实用javascript验证代码,欢迎指正批评


var Validate = function(){}

Validate.prototype =  {
	// 验证字符串
	testString: function(str) {
		return str.replace(/^\s+|\s+$/g, "") != "";
	},
	
	// 验证整数
	testIntegerNumber: function(num) {
		if (!this.testString(num)) {
			return false;
		}
		return /^[0-9]+$/.test(num);
	},
	
	// 验证浮点数
	testDoubleNumber: function(num) {
		if (!this.testString(num)) {
			return false;
		}
		return /^\d+(\.)\d+$/.test(num);
	},
	
	// 验证日期(yyyy/MM/dd)
	testDate: function(date) {
		if (!this.testString(date)) {
				return false;
		}
		var reg = /^[1-2]\d{3}\/(0?[1-9]|1[0-2])\/(0?[1-9]|[12][0-9]|3[0-1])$/; 
		return reg.test(date);
	},
	
	// 验证Email
	testEmail: function(email) {
		if (!this.testString(email)) {
			return false;
		}
		var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;
	    return reg.test(email);
	},
	
	// 验证中文
	testChinese: function(str) {
		if (!this.testString(str)) {
			return false;
		}
		return !/^[u4E00-u9FA5]+$/.test(str);
	}
	
}



HTML测试页面

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>图书管理</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript" src="validate.js"></script>
  </head>
  
  <body>
  	<form action="hello.do" method="post">
	    <table width="40%" cellpadding="0" cellspacing="0" border="1" align="center">
	    	<tbody align="center">
	    		<tr>
	    			<td>书名</td>
	    			<td><input type="text" name="book_title"></td>
	    		</tr>
	    		<tr>
	    			<td>作者</td>
	    			<td><input type="text" name="book_author"></td>
	    		</tr>
	    		<tr>
	    			<td>售价</td>
	    			<td><input type="text" name="book_price"></td>
	    		</tr>
	    		<tr>
	    			<td>出版日期</td>
	    			<td><input type="text" name="book_yr"></td>
	    		</tr>
	    		<tr>
	    			<td>描述</td>
	    			<td><textarea name="book_description"></textarea></td>
	    		</tr>
	    		<tr>
	    			<td colspan="2">
		    			<input type="submit" name="submit" value="提交" onclick="return isNull();">
		    			&nbsp;&nbsp;&nbsp;&nbsp;
		    			<input type="reset" name="reset" value="重置">
	    			</td>
	    		</tr>
	    	</tbody>
	    </table>
    </form>
    <script type="text/javascript">
		var validate = new Validate();
    	function isNull() {
    		if (!validate.testString($("input[name='book_title']").val())) {
	            alert("书名不能为空!");
	            $("input[name='book_title']").get(0).focus();
	            return false;
	        }
	        if (!validate.testString($("input[name='book_author']").val())) {
	            alert("作者不能为空!");
	            $("input[name='book_author']").get(0).focus();
	            return false;
	        }
	        if (!validate.testDoubleNumber($("input[name='book_price']").val())) {
	            alert("售价输入错误!");
	            $("input[name='book_price']").get(0).focus();
	            return false;
	        }
	        if (!validate.testDate($("input[name='book_yr']").val())) {
	            alert("出版日期输入错误!");
	            $("input[name='book_yr']").get(0).focus();
	            return false;
	        }
	        return true;
        }
    </script>
  </body>
</html>


代码在附件
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics