代码实例如下所示 :
代码中我们需要注意的是:
正则表达式的语法 用new来创建正则表达式和直接赋值创建正则表达式是区别的,new的方式要加一个转义字符而直接赋值的方式则不需要。
表单提交页面
<html >
<head >
<meta http-equiv ="Content-Type" content ="text/html; charset=utf-8" />
<title > form表单验证</title >
<style type ="text/css" >
</style >
<script type ="text/javascript" >
function check (valueName,reg,spanNodeId,okInfo,errorInfo) {
var value = document.getElementsByName(valueName)[0 ].value;
var spanNode = document.getElementById(spanNodeId);
if (reg.test(value)){
spanNode.innerHTML=okInfo.fontcolor("green" );
return true ;
}else {
spanNode.innerHTML=errorInfo.fontcolor("red" );
return false ;
}
}
function checkUserName () {
var userName = "userName" ;
var reg = /[a-z]{4}/ ;
var spanNodeId ="userNameSpan" ;
var okInfo ="用户名格式正确" ;
var errorInfo ="用户名格式错误" ;
return check(userName,reg,spanNodeId,okInfo,errorInfo);
}
function checkPassWord () {
var pwdValue = "userPassword" ;
var reg = /^[0-9]{6,9}$/ ;
var spanNodeId = "userPwdSpan" ;
var okInfo ="密码格式正确" ;
var errorInfo ="密码必须是6-9位小数" ;
return check(pwdValue,reg,spanNodeId,okInfo,errorInfo);
}
function checkMail () {
var mailName = "mail" ;
var reg = /^\w+@+\w+(\.\w+)+$/ ;
var spanNodeId = "mailSpan" ;
var okInfo ="邮箱格式正确" ;
var errorInfo ="邮箱格式错误" ;
return check(mailName,reg,spanNodeId,okInfo,errorInfo);
}
function checkAll () {
if (checkUserName() && checkPassWord() && checkMail()){
return true ;
}else {
return false ;
}
}
</script >
</head >
<body >
<form action ="/dhtmlPro/servlet/MyReg" onsubmit ="return checkAll();" >
姓名:<input type ="text" name ="userName" onblur ="checkUserName()" >
<span id ="userNameSpan" > </span >
<br /> <br />
密码:<input type ="text" name ="userPassword" onblur ="checkPassWord()" >
<span id ="userPwdSpan" > </span > <br /> <br />
邮箱:<input type ="text" name ="mail" onblur ="checkMail()" >
<span id ="mailSpan" > </span >
<br /> <br />
<input type ="submit" value ="注册" />
</form >
</body >
</html >
Servlet代码
package cn.hncu.user;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyReg extends HttpServlet {
public void doGet (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8" );
String name = request.getParameter("userName" );
request.setAttribute("uName" , name);
String path="/dhtml1/6fromsubmit/shwo.jsp" ;
request.getRequestDispatcher(path).forward(request, response);
}
}
表单提交页面结果代码
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html >
<head >
<title > 表单提交页面结果</title >
<meta http-equiv ="Content-Type" content ="text/html; charset=utf-8" />
<script type ="text/javascript" >
</script >
</head >
<body >
<%
out.println(request .getAttribute("uName" ));
%>
<div > nice job</div >
</body >
</html >