jQuery Form,检查前四个变量数

时间:2012-09-13 11:17:06

标签: javascript jquery

我想要实现的是代码检查器。只有前4个数字很重要,其他数字可以是任意数字。该表单将用于用户输入产品代码。

问题在于,如果变量改为5个数字,则该变量为false。

见下面的例子:

http://jsfiddle.net/MZfxs/3/

如果用户输入数字3541,则框会改变颜色,但如果用户输入剩余数字,则该值设置为false。

另外,我试图让盒子只在插入13个数字时改变颜色,前4个数字按顺序匹配。

解决! 工作示例: http://jsfiddle.net/MZfxs/8/

3 个答案:

答案 0 :(得分:1)

如果我理解正确,您需要进行字段值验证,并且要求的值应该从75149268等4个数字开始。在这里,您可以使用正则表达式来验证输入值,如:

// Will work for " 123433 " or "12345634 ", etc.
var value = $(this).val(),
    re = /^\s*(\d{4})(\d+)\s*$/, // better to initialize only once somewhere in parent scope
    matches = re.exec(value),
    expectedCode = 3541,
    expectedLength = 13;
if(!!matches) {
    var code = matches[1]; // first group is exactly first 4 digits
    // in matches[2] you'll find the rest numbers.
    if(value.length == expectedLength && code == expectedCode) {
        // Change the color...
    }
}

此外,如果您的要求严格到长度为13,那么您可以将常规出现修改为

var re = /^(\d{4})(\d{9})$/;

并在第一组中检索前4个数字,在第二组中检索9个:

var matches = re.exec(value);
if(!!matches) {
    var first4Digits = matches[1],
        rest9Digits = matches[2];
    // ...
    // Also in this way you'll not need to check value.length to be 13.
}

答案 1 :(得分:0)

每次关键事件触发时都可以断开字符串。你可以通过调用js substring()方法并取前四个字符来检查它。

答案 2 :(得分:0)

尝试使用它:

<script>
    $("input").keyup(function () {
      var value = $(this).val();
      $("p").text(value);
     var value2 = $(this).val().substr(0,4);
  if(value2 == 3541){
       $(".square").css("background-color","#D6D6FF");


    }else{
     $(".square").css("background-color","yellow");
    }

    })
</script>