• 验证控件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());
    });

     
  • 相关阅读:
    n!末尾有几个零
    NYOJ 14(会场安排)
    使用dynamic来简化反射实现,并且提高了性能。
    VB.NET 、Java 与 C# 语法对比。
    你不得不使用的XML代码生成器,那就是XmlFactory
    C# 和vb.net事件
    SQL Server 2008中的hierarchyid
    系统架构师基础到企业应用架构客户端/服务器
    Asp.Net在IIS上运行不了,就试下下面方法应该可以你的问题
    为你的博客添加几分色彩
  • 原文地址:https://www.cnblogs.com/hanyining/p/5953159.html
Copyright © 2020-2023  润新知