使用带有数字和字母的Jquery进行表单验证

时间:2011-07-11 14:12:22

标签: jquery forms validation input

我正在构建测试验证,以确保输入了正确的部件号。每个部分从CAPS中的MR开始,然后是[SPACE],后跟三个数字。例如(MR 123)

问题是如果我似乎无法弄清楚如何使用jquery验证这一点。

部件号始终以MR开头。

                var type = $("input#type").val();

                        // Check a that a tank type has been entered.
                        if( type.length < 5  && type.not().contain("MR")){

                                $("#error_upload").html("Please enter the tank number in a format MR XXX.");
                                $("#type").css({borderColor:'red'}).focus();                                    
                                $("name,#file").css({borderColor:'#ccc'});
                                return false;

                        }

任何帮助都会很棒。

3 个答案:

答案 0 :(得分:1)

我建议使用正则表达式。

if (type.match(/^MR\s[0-9]{3}$/){
...
}

基本上,它会查找MR,然后查找空格(\s),然后查找3个数字([0-9]{3})。如果出现任何其他内容,则返回false。

答案 1 :(得分:1)

if (/^MR \d{3}$/.test(subject)) {
    // Correct tank number format
} else {
    // Incorrect tank number format
}

这样可确保输入的值始终仅为MR + [SPACE] + 3 digits且仅为此。

答案 2 :(得分:1)

你可以去几条路线。

  1. 继续以这种方式编写验证

    • 您希望您的代码可能类似于以下内容

      var type = $("input#type").val();
      
      // Check a that a tank type has been entered.
      if(!/^MR \d{3}$/.test(type)){
      
          $("#error_upload").html("Please enter the tank number in a format MR XXX.");
          $("#type").css({borderColor:'red'}).focus();                                    
          $("name,#file").css({borderColor:'#ccc'});
          return false;
      
      }
      
  2. 将上述内容整合到jQuery Validate中,因为我假设您需要在其他地方进行验证

  3. 只允许3个数字并附加在'MR ' + type上简化条目,因为每个数字都需要MR和空格,为什么要求用户输入呢?

    var num = $("input#type").val()
    ,   type;
    
    // Check a that a tank type has been entered.
    if(!/^\d{3}$/.test(num)){
    
        $("#error_upload").html("Please enter the tank number with only digits.");
        $("#type").css({borderColor:'red'}).focus();                                    
        $("name,#file").css({borderColor:'#ccc'});
        return false;
    
    }
    else {
        type = 'MR ' + num;
    }
    
  4. 合并第2步和第3步,这会产生类似<input type="text" class="required digits" maxlength="3" minlength="3" />的输入。这样可以减少复杂的数据输入,而不必担心简单的验证逻辑。这是我最喜欢的选择。

  5. 使用输入掩码防止用户开始犯错,但这是最“侵扰性”。