我想要实现的是代码检查器。只有前 4 个数字很重要,其他数字可以是任何数字。该表格将用于用户输入产品代码。
问题是,如果变量更改为 5 个数字,则该变量为假。
请参见下面的示例:
如果用户输入数字 3541,框会改变颜色,但如果用户输入剩余的数字,则该值设置为 false。
此外,我试图让盒子只在插入 13 个数字并且前 4 个数字按该顺序匹配时才改变颜色。
解决了!工作示例:http: //jsfiddle.net/MZfxs/8/
我想要实现的是代码检查器。只有前 4 个数字很重要,其他数字可以是任何数字。该表格将用于用户输入产品代码。
问题是,如果变量更改为 5 个数字,则该变量为假。
请参见下面的示例:
如果用户输入数字 3541,框会改变颜色,但如果用户输入剩余的数字,则该值设置为 false。
此外,我试图让盒子只在插入 13 个数字并且前 4 个数字按该顺序匹配时才改变颜色。
解决了!工作示例:http: //jsfiddle.net/MZfxs/8/
如果我理解正确,您需要一个字段值验证,并且要求该值应该从 4 个数字开始,例如7514
or 9268
。在这里,您可以使用正则表达式来验证输入值,例如:
// 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 的长度,那么您可以将常规 epression 修改为
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.
}
每次触发关键事件时,您都可以断开字符串。您可以通过调用 js substring() 方法并获取前四个字符并检查它来做到这一点。
尝试使用这个:
<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>