浏览 2332 次
锁定老帖子 主题:用javascript写的表单验证
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-07-30
最后修改:2009-07-31
用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>
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |