zoukankan      html  css  js  c++  java
  • 验证控件jQuery Validation Engine简单自定义正则表达式

    首先上控件的地址http://code.ciaoca.com/jquery/validation-engine/

    具体使用方式网站里说的很清楚,我写这篇文章主要是用于记录如何自己添加自定义正则表达式,这个问题折腾了几次,刚刚才会搞。网上也查了很多,都没有说到点子上的,也许是我太笨没看懂。

    进入正题,这个控件很强大,里面的验证足够我们使用,但是有时候我们项目需求可能比较独特,这里面没有怎么办?那就得自己写一个正则然后匹配了,但是我一开始就怎么都找不到该往哪里填入自定义正则。

    以上是网站里写的,但是这段该往哪里填呢?在我们引入文件的时候,会引入这个文件<script src="js/jquery.validationEngine-zh_CN.js"></script>,是在这个文件里填!

    当然聪明的人可能早找到地方了,但是我比较笨,到最后才想到是不是填到源文件里,果不其然。

    'everyName': {
    'regex': '^[u4E00-u9FA5]+$|^[0-9]*$|·',     /* 自定义正则表达式 */
    'alertText': '无效的姓名'      /* 验证不通过时的提示 */
    }

    这段是我填入的正则,是为了匹配一个姓名,要求是数字、汉字、外带一个“·”,不符合则提示错误,符合则通过,当然这种鬼一般不会有通用的正则,得你自己写或者合并。

    在这里我要说几点小细节,这是我本次碰到的问题:

    1.写正则的时候要记得将regex放在引号中

    2.想要让几个正则组合同时匹配,用‘|’这个竖杠,这里要注意,用|貌似只能单方面匹配,也就是说当我写一个正则让匹配数字、汉字、外带一个“·”,他们单独输入的时候是正确通过的,但是如果合并在一起,或者任意两个搭配,那么就会不通过。所以我今天又换了种写法,^[u4E00-u9FA50-9·]+$  ^是开始的意思$是结尾的意思+是至少匹配一次u4E00-u9FA5是汉字0-9是数字·代表·,用[]把他们匹配要求括起来, []用来自定义能够匹配 '多种字符' 的表达式。

    3.想要匹配某个特殊字符,例如我这个点“·”,那么只需要加个斜杠就可以例如·,或者说你就要匹配一个字,例如想让“js”这两个字母也符合要求,因为我们的要求是中文和数字,英文是不符合要求的,我只想让这两个字母也符合要求怎么办?  js这样就可以了

    接下来我说一下这个控件的基础用法:

    1首先引入文件

    <link rel="stylesheet" href="css/validationEngine.jquery.css">
    <script src="js/jquery.js"></script>
    <script src="js/jquery.validationEngine-zh_CN.js"></script>
    <script src="js/jquery.validationEngine.js"></script>

    2然后给表单添加id
    <form id="form_id" ...>
    ...
    </form>

    3开始在表单中使用

    <input id="selectName1" type="text" class="validate[required,custom[everyName]]"  data-errormessage-value-missing="* 此处不可空白" data-errormessage="* 字符格式不正确,请重新输入"  />

    首先,所有的验证都是在input的class里添加,validate[required]为必填的意思,而custom[everyName]则是正则匹配的要求了,具体可以看网站里,我这里的everyName是我自定义的。我试验了下custom[]内部只能填入一个且它本身也只能存在一个,不能多个。而validate[]的括号里面则可以填入多个,以逗号隔开,但是validate的本身只能存在一个。

    validate[required,custom[number],maxSize[20],min[0]]   这段的意思是这是一个必填项,同时里面只能是数字,最多输入字符数为20,其中最小值为0

    data-errormessage-value-missing="* 此处不可空白"   这段暂时理解为,如果含有required,它就会提示这句话,这句话可以自定义

    data-errormessage="* 字符格式不正确,请重新输入"   这段的理解暂时为,如果不为空了,那么如果不符合我们自定义的正则及各种要求(只能是数字,最多输入字符数为20,其中最小值为0),则提示这句话,这句话也可以自定义。

    以上就是这次使用的总结,主要是给自己看,以后如果忘了还能翻回来看O(∩_∩)O~

    再记录一个,就是如果项目有开始时间和结束时间的话,要求是当选择了开始时间,那么在结束时间中,开始时间之前的就都不能被选择。反之,如果选择了结束时间,那么开始时间必须要在结束时间之前,之后的也都无法选择。需要一个js来控制。因为我们是用的bootstrap-datepicker这个控件,暂时在这里记录一下。

    $(".times_ipt").eq(0).change(function(){
    $(".times_ipt").eq(1).datepicker('setStartDate', $(this).val());
    });
    $(".times_ipt").eq(1).change(function(){
    $(".times_ipt").eq(0).datepicker('setEndDate', $(this).val());
    });
    $(".times_p").eq(0).change(function(){
    $(".times_p").eq(1).datepicker('setStartDate', $(this).val());
    });
    $(".times_p").eq(1).change(function(){
    $(".times_p").eq(0).datepicker('setEndDate', $(this).val());
    });

     
  • 相关阅读:
    常用知识点集合
    LeetCode 66 Plus One
    LeetCode 88 Merge Sorted Array
    LeetCode 27 Remove Element
    LeetCode 26 Remove Duplicates from Sorted Array
    LeetCode 448 Find All Numbers Disappeared in an Array
    LeetCode 219 Contains Duplicate II
    LeetCode 118 Pascal's Triangle
    LeetCode 119 Pascal's Triangle II
    LeetCode 1 Two Sum
  • 原文地址:https://www.cnblogs.com/hanyining/p/5953159.html
Copyright © 2011-2022 走看看