js 对表单的一些验证及正则匹配
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 对表单的一些验证及正则匹配相关的知识,希望对你有一定的参考价值。
利用的是jq的validate.js
详见菜鸟教程http://www.runoob.com/jquery/jquery-plugin-validate.html
以下是我测试的几个文件,就是理解后修改的菜鸟教程上的例子,具体还没实际用在工程中,一些防sql注入,防xss攻击等未实现,但是功能完备
validate.html
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <load href="__PUBLIC__/js/jquery.min.js" /> <load href="__PUBLIC__/assets/Regular/regular.js" /> <load href="__PUBLIC__/assets/js/jquery.validate.min.js" /> <load href="__PUBLIC__/assets/Regular/regular.css" /> <title></title> </head> <body> <form class="cmxform" id="signupForm" method="get" action=""> <fieldset> <legend>验证完整的表单</legend> <p> <label for="firstname">名字</label> <input id="firstname" name="firstname" type="text"> </p> <p> <label for="lastname">姓氏</label> <input id="lastname" name="lastname" type="text"> </p> <p> <label for="username">用户名</label> <input id="username" name="username" type="text"> </p> <p> <label for="password">密码</label> <input id="password" name="password" type="password"> </p> <p> <label for="confirm_password">验证密码</label> <input id="confirm_password" name="confirm_password" type="password"> </p> <p> <label for="email">Email</label> <input id="email" name="email" type="email"> </p> <p> <label for="telephone">Tel</label> <input id="telephone" name="telephone" type="telephone"> </p> <p> <label for="agree">请同意我们的声明</label> <input type="checkbox" class="checkbox" id="agree" name="agree"> </p> <p> <label for="newsletter">我乐意接收新信息</label> <input type="checkbox" class="checkbox" id="newsletter" name="newsletter"> </p> <fieldset id="newsletter_topics"> <legend>主题 (至少选择两个) - 注意:如果没有勾选“我乐意接收新信息”以下选项会隐藏,但我们这里作为演示让它可见</legend> <label for="topic_marketflash"> <input type="checkbox" id="topic_marketflash" value="marketflash" name="topic">Marketflash </label> <label for="topic_fuzz"> <input type="checkbox" id="topic_fuzz" value="fuzz" name="topic">Latest fuzz </label> <label for="topic_digester"> <input type="checkbox" id="topic_digester" value="digester" name="topic">Mailing list digester </label> <label for="topic" class="error">Please select at least two topics you‘d like to receive.</label> </fieldset> <p> <input class="submit" type="submit" value="提交"> </p> </fieldset> </form> </body> </html> <script type="text/javascript"> $().ready(function() { checkInputs($("#signupForm")); }) </script>
regular.js
/** *js 每个页面的input验证 *注意:本js使用时,要和jquery,jquery.validate一起引入,rules下的参数如firstname要和form表单中的<input name=‘firstname‘>一致,详细可参见validate.html *author betty *email [email protected] *Date 2017/06/13 *Time 16:31 */ //检查登录表单 //检查新建表单 function checkCreateInputs(formobj) { formobj.validate({ // debug:true, rules: { firstname: "required", lastname: "required", username: { //用户名 required: true, minlength: 2 }, password: { //密码 required: true, minlength: 6 }, confirm_password: { required: true, minlength: 6, equalTo: "#password" }, email: { //邮箱 // required: true, email: true }, topic: { required: "#newsletter:checked", minlength: 2 }, mobilephone: { //手机 mobilephone: true }, telephone: { //座机 telephone: true }, agree: "required" }, messages: { firstname: "请输入您的名字", lastname: "请输入您的姓氏", username: { required: "请输入用户名", minlength: "用户名必需由两个字母组成" }, password: { required: "请输入密码", minlength: "密码长度不能小于 5 个字母" }, confirm_password: { required: "请输入密码", minlength: "密码长度不能小于 5 个字母", equalTo: "两次密码输入不一致" }, email: "请输入一个正确的邮箱", agree: "请接受我们的声明", topic: "请选择两个主题", }, success: "valid" //验证成功后作出的显示,我选择的是显示打钩的图片 })
//自己添加的正则匹配规则 jQuery.validator.addMethod("mobilephone", function(value, element) { var tel = /^1[3458]\d{9}$/; return this.optional(element) || (tel.test(value)); }, "请正确填写您的手机号码"); jQuery.validator.addMethod("telephone", function(value, element) { var tel = /^([0-9]{3,4}-)?[0-9]{7,8}$/; return this.optional(element) || (tel.test(value)); }, "请正确填写您的座机号码"); }
//验证输入框 function checkSearchInputs(searchform){ searchform.validate({ rules: { search : { search : true } } }) jQuery.validator.addMethod("search", function(value, element) { var tel = /select|insert|and|or|update|delete|\‘|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile/i; return this.optional(element) || (tel.test(value)); }, ""); }
regular.css
input.error { border: 1px solid red; } label.error { background:url("unchecked.png") no-repeat 1px 4px; //同目录下的图片 padding-left: 20px; padding-bottom: 2px; font-weight: bold; color: #EA5200; } label.valid { background:url("checked.png") no-repeat 1px 4px; }
以上是关于js 对表单的一些验证及正则匹配的主要内容,如果未能解决你的问题,请参考以下文章