jQuery中表单校验
一、案例解析
实现如下功能,进行校验

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>jQuery表单校验</title> <script src="js/jquery.min.js" type="text/javascript" charset="UTF-8"></script> <script type="text/javascript"> function checkUsername() { //获取输入的用户名 var uname = $("#user").val() //对用户名进行校验 if(uname == ""){//判断输入的内容是否为空,如果为空则在输入框后面写入内容 $("#usertip").html("<font color='#a52a2a'>用户名不能为空</font>") return false } if (uname.length<6){ //判断长度是否大于6位 $("#usertip").html("<font color='#a52a2a'>用户名长度要大于6位</font>") return false } //判断是否为数字。用户名不能包含数字 for(var i=0;i<uname.length;i++){ var str_name = uname.charAt(i) if(str_name<"9" && str_name>="0"){ $("#usertip").html("<font color='#a52a2a'>用户名不用使用数字</font>") return false } } //如果符合要求则执行写入用户名校验通过 $("#usertip").html("<font color='green'>用户名校验通过</font>") return true } function checkPassword(){ //获取输入的用户名 var pd = $("#pwd").val() if(pd == ""){//非空校验 $("#pwdtip").html("<font color='#a52a2a'>密码不能为空</font>") return false } if(pd.length<6){//密码长度校验 $("#pwdtip").html("<font color='#a52a2a'>密码长度需要大于6位</font>") return false } $("#pwdtip").html("<font color='green'>密码校验通过</font>") return true } function checkRepwd() { //分别获取密码和确认密码 var passwd1 = $("pwd").val() var passwd2 = $("repwd").val() if(passwd2<6 || passwd1 != passwd2){ $("#repwdtip").html("<font color='#a52a2a'>确认密码不符合要求</font>") return false } $("#repwdtip").html("<font color='green'>确认密码校验通过</font>") return true } function checkEmail() { //取出输入的密码框 var email_info = $("#email").val() //查找出@ .的下标索引 var idx01 = email_info.indexOf("@") var idx02 = email_info.indexOf(".") if(idx01<1 || idx02<1 || idx01>idx02){ $("#emailtip").html("<font color='#a52a2a'>密码格式不正确</font>") return false } $("#emailtip").html("<font color='green'>密码校验通过</font>") return true } function checkForm() { return checkUsername()&&checkPassword()&&checkRepwd()&&checkEmail() } </script> </head> <body> <table id="center" border="0" cellspacing="0" cellpadding="0"> <!-- onsubmit当表单提交时执行 JavaScript:--> <form action="http://www.baidu.com" method="get" onsubmit="return checkForm()"> <tr> <td>您的姓名:</td> <td> <!--onblur属性是当用户离开输入字段时对其进行验证--> <input id="user" type="text" name="username" onblur="checkUsername()"/> <div id="usertip" style="display: inline;"></div> </td> </tr> <tr> <td>输入密码:</td> <td> <!-- onblur属性是当用户离开输入字段时对其进行验证 --> <input id="pwd" name="pwd" type="password" onblur="checkPassword()"/> <div id="pwdtip" style="display: inline;"></div> </td> </tr> <tr> <td>再输入一遍密码:</td> <td> <input id="repwd" type="password" onblur="checkRepwd()"/> <div id="repwdtip" style="display: inline;"></div> </td> </tr> <tr> <td>您的Email:</td> <td> <input id="email" type="text" onblur="checkEmail()"/> <span id="emailtip"></span> </td> </tr> <tr> <td colspan="2"> <input type="submit" value="注册" class="rb1" /> </td> </tr> </form> </table> </body> </html>
二、正则表达式
什么是正则表达式
Regular Expression,在代码中常简写为regex,正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。
为什么使用正则表达式
- 正则表达式可以是文本的校验的代码更加简洁
- 正则表达式可以实现更加严谨细致的校验
正则表达式举例
- 匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}
- 匹配腾讯QQ号:[1-9][0-9]{4,}
- 匹配中国邮政编码:\d{6}
- 匹配身份证:\d{15}|\d{18}
- 匹配由数字和26个英文字母组成的字符串 ^[A-Za-z0-9]+$
- 匹配Email地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
- 匹配中文字符的正则表达式: [\u4e00-\u9fa5] [a-zA-Z]
JavaScript中如何创建正则表达式
正则表达式在JS中创建的语法为:
var reg=/china/;
//或者
var reg=new RegExp("china");
正则表达式的通配符号


三、利用正则表达式进行表单校验
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>jQuery表单校验</title> <script src="js/jquery.min.js" type="text/javascript" charset="UTF-8"></script> <script type="text/javascript"> function checkUsername() { var reg1 = /^\D{6,}$/ //获取输入的用户名 var uname = $("#user").val() //对用户名进行校验 if(!reg1.test(uname)){//判断输入的格式是否正确,不符合格式则写入 $("#usertip").html("<font color='#a52a2a'>用户名格式不符合要求</font>") return false } //如果符合要求则执行写入用户名校验通过 $("#usertip").html("<font color='green'>用户名校验通过</font>") return true } function checkPassword(){ var reg2 = /^\w{6,}$/ //获取输入的用户名 var pd = $("#pwd").val() if(!reg2.test(pd)){//密码长度校验 $("#pwdtip").html("<font color='#a52a2a'>密码格式校验错误</font>") return false } $("#pwdtip").html("<font color='green'>密码校验通过</font>") return true } function checkRepwd() { //分别获取密码和确认密码 var passwd1 = $("pwd").val() var passwd2 = $("repwd").val() if(passwd2<6 || passwd1 != passwd2){ $("#repwdtip").html("<font color='#a52a2a'>确认密码不符合要求</font>") return false } $("#repwdtip").html("<font color='green'>确认密码校验通过</font>") return true } function checkEmail() { var reg_passwod = /^\w{6,}@\w{2,}\.\w{2,}$/ //取出输入的密码框 var email_info = $("#email").val() if(!reg_passwod.test(email_info)){ $("#emailtip").html("<font color='#a52a2a'>密码格式不正确</font>") return false } $("#emailtip").html("<font color='green'>密码校验通过</font>") return true } function checkForm() { return checkUsername()&&checkPassword()&&checkRepwd()&&checkEmail() } </script> </head> <body> <table id="center" border="0" cellspacing="0" cellpadding="0"> <!-- onsubmit当表单提交时执行 JavaScript:--> <form action="http://www.baidu.com" method="get" onsubmit="return checkForm()"> <tr> <td>您的姓名:</td> <td> <!--onblur属性是当用户离开输入字段时对其进行验证--> <input id="user" type="text" name="username" onblur="checkUsername()"/> <div id="usertip" style="display: inline;"></div> </td> </tr> <tr> <td>输入密码:</td> <td> <!-- onblur属性是当用户离开输入字段时对其进行验证 --> <input id="pwd" name="pwd" type="password" onblur="checkPassword()"/> <div id="pwdtip" style="display: inline;"></div> </td> </tr> <tr> <td>再输入一遍密码:</td> <td> <input id="repwd" type="password" onblur="checkRepwd()"/> <div id="repwdtip" style="display: inline;"></div> </td> </tr> <tr> <td>您的Email:</td> <td> <input id="email" type="text" onblur="checkEmail()"/> <span id="emailtip"></span> </td> </tr> <tr> <td colspan="2"> <input type="submit" value="注册" class="rb1" /> </td> </tr> </form> </table> </body> </html>

浙公网安备 33010602011771号