【问题标题】:Custom Validator for certain field length and other criteria特定字段长度和其他条件的自定义验证器
【发布时间】:2012-07-23 10:30:28
【问题描述】:

我有一个文本框,它的规则是文本长度不应少于 8 个字符,并且至少应包含一个数字字符。如果不满足上述条件,我有一个自定义验证控件来显示错误消息。

请告诉我如何做到这一点。

谢谢,

【问题讨论】:

  • 请分享您的尝试...
  • @tim-schmelter:我怀疑它是密码文本...他希望最小长度为 8 而不是最大

标签: asp.net validation


【解决方案1】:

请尝试以下方法

function test()
      {
       var str = $('#txtTest').val();
       var isValid = false;
       var cnt = 0;
       if(str.length >= 8)
       {
         for(var i=0; i < str.length; i++) 
         {
           if (isNumber(str.charAt(i)) == true)
           {
             cnt = cnt + 1;
           }
         }
       }
       if (cnt > 0)
       {
        isValid = true;
       }
       return isValid;
      }
      function isNumber(n) 
      {
        return !isNaN(parseFloat(n)) && isFinite(n);
      }

【讨论】:

    【解决方案2】:

    您可以考虑使用密码强度扩展器(假设您需要将其用于密码字段,但即使在其他情况下也可以使用此想法)。查看演示here

    如果要编写自定义验证器,获取文本框中的值;然后检查文本的大小并验证它是否有数字。 记得也要写一个服务器端验证方法。

    您还可以使用 regex 来确定输入文本的有效性 - 查看this 文章了解如何操作。

    这些应该可以帮助您入门。

    【讨论】:

      【解决方案3】:
      function varFunction()
      {
         var myLength = $("#myTextbox").val().length;
         if(myLength > 8)
         {
            alert('more than 8 characters');
         }
      }
      

      长度不超过8个字符的代码

      【讨论】:

      • 这是不正确的...长度不应小于 8 并且其中至少需要有 1 个数字。
      【解决方案4】:

      在自定义验证器上,您需要使用正则表达式来满足您的要求。

      正则表达式应该是:-

      ^(?=.*\d)(?=.*[a-zA-Z]).{8,}
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-04
        • 2014-04-24
        • 1970-01-01
        相关资源
        最近更新 更多