用javascript写的表单验证,可以用网站的前后台的登陆,大家可以给提点意见。这是以前做项目的时候写的
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>验证表单</title>
- <script language="JavaScript">
- function check(){
- var user = document.getElementById("username").value;
- var pass = document.getElementById("pass").value;
- var rpass = document.getElementById("rpass").value;
- var cardnum = document.getElementById("cardnum").value;
- var email = document.getElementById("email").value;
- //用户名只能由字母、数字、下划线组成,其它字符一律过滤,这样也确保了安全性,
- //正则表达式的意思是,当输入0-9、a-z、A-Z、_以外的任何一个或者多个字符时则提示错误
- if (user.match("([^a-zA-Z0-9_]+)") != null || user.length < 3 || user.length > 15) {
- alert("您输入的用户名应由字母数字下划线组成,长度在3~15位之间!");
- return false;
- }
- else
- if ((pass.length > 20 || pass.length < 6) || (pass == user)) {
- alert("您的密码长度过短或者密码与姓名相同,请重新输入!");
- return false;
- }
- else
- if (pass != rpass) {
- alert("您两次输入的密码不一致!");
- return false;
- }
- else
- //×××号用于匹配两种模式,一种是15位的,一种是18位的
- //这个正则表达式分三部分:第一位必须为1,最后一位可以是x、X、0-9中的任意一位
- //中间一块是指匹配13或者16位数字
- if (cardnum.match("1\\d{16}[0-9xX]+|1\\d{13}[0-9xX]+") == null) {
- alert("您的×××号码不正确,请重新输入!");
- return false;
- }
- else
- //正则表达式匹配a-zA-Z0-9_中的一位或者多位,而且必须要有@.这是一个email必须的
- if (email.match("[a-zA-Z0-9_]*@.") == null) {
- alert("您输入的E-Mail不正确,请重新输入!");
- return false;
- }
- else {
- alert("登陆成功!");
- }
- }
- </script>
- </head>
- <body>
- <form action="ff.html" method="get" onsubmit="return check();">
- 用户名:<input id="username" type="text" name="username"/><p/>密 码: <input id="pass" type="password" name="password"/><p/>重新输入密码:<input id="rpass" type="password"/><p/>×××号码:<input id="cardnum" type="text"/><p/>E-Mail:<input id="email" type="text"/>
- <br/>
- <br/>
- <input type="submit" value="提交" /><input type="reset" value="重置"/>
- </form>
- </body>
- </html>