var regexEnum = 
{

num1:"^([1-9]\\d*|0)$", //正数(正整数 + 0)}$("#circumscribeDate").formValidator({
onfocus:"请输入1-30之间的数字!"
}).inputValidator({
type:"number",
min:1,
max:30,
onerror:"请输入1-30之间的数字!"
}).regexValidator({regexp:"num1",datatype:"enum",onerror:"办理限制日期的格式不正确"});需求:如何实现表单input控件可以为空,但是如果不为空时,调用正则进行验证?

解决方案 »

  1.   

    function check(money){
    var patrn=/^[1-9]\d*$/;
    if(money==''){
    return true;
    }
    if (!patrn.exec(money)){
    return false;
    }
    return true;
    }
      

  2.   

    最好不要重新写js实现。用formvalidator 内部实现。
      

  3.   

    <script>
    var p = /^(|\d+)$/;
       var arr=["","123","0"]
       for(var i=0;i<arr.length;i++){
    document.write(arr[i].replace(" ","&nbsp;")+":"+p.test(arr[i])+"<br/>");
       }
    </script>
      

  4.   

    ^[1-9]\d*|0$ //匹配非负整数(正整数 + 0)后面的那个 $ 表示以这些结尾, 一定要有这几个数字, num1:"^[1-9]\d*|0|$",
    再把min改成0试试
      

  5.   


    input 可以不用输入,也就是为空。
    但是,如果用户输入了数据,就要调用正则验证。
    关键怎么实现 为空是不验证,而且可以正常提交。 不为空时 就调用正则验证?
      

  6.   

    这样子,你把所有验证都集成在regexValidator里面吧,要不然你就查查你手上的formValidator的API啰<script>
    var p = /^(|[0-9]|[1-2][0-9]|30)$/; //验证0-30
       var arr=["","123","0"]
        vandw = function(str){
    document.write(str + "\t\t:"+p.test(str)+"<br/>"); }
    vandw(''); for (var i=0;i<=31 ;i++ )
    {
    vandw(i.toString());
    }
    </script>
      

  7.   

    是这样子的,jquery关于表单验证的控件太多了,重名的也很多,即使你给了名字,我也不能确保我搜索到的插件API跟你手头上的一样,你直接看源代码一般会有作者主页,上去查吧。
      

  8.   

    我们用的是 formValidator.js formValidatorRegex.js。
      

  9.   

    没想到问题解决的办法是如此的简单。
    在input 加上属性 allownull="true"。
    多谢楼上几位。