我想验证用户在文本框中输入的值是使用jQuery的100的倍数。我怎么能这样做?
答案 0 :(得分:6)
这将检查匹配#example
的元素的值是否为100的倍数,并将结果(true
或false
)存储在multiple
中:
$("#example").change(function() {
var multiple = parseInt($(this).val(), 10) % 100 == 0;
});
请注意,这会导致0
返回true
,因此您可能需要为此添加一个签入。
这是一个live example。有关模数运算符的更多信息,请参阅MDN article。
更新(根据评论)
如@PaulPRO在评论中所述,对于诸如100.973之类的数字,上述内容也将返回true。如果要处理浮点数和整数,只需使用parseFloat
而不是parseInt
。这是另一个live example,这里有一些更新的代码:
$("#example").change(function() {
var multiple = parseFloat($(this).val()) % 100 == 0;
});
答案 1 :(得分:3)
if (parseInt($("#yourtextbox").val()) % 100 === 0) {
// is multiple of 100
}
答案 2 :(得分:3)
有很多有趣的方法。让我们自己收集输入值:
var input = $('#textbox').val();
所以,方式:
无聊的正确方式
if (parseInt(input,10) % 100 === 0)
更有趣的方式
if (input.substr(-2)==='00')
“我爱奇怪的基地”
if (parseInt(value,13) % parseInt('79',13) === 0)
的正则表达式
if (input.match(/[1-9]+00$/))
更有趣(但绝对更强大)的正则表达式
if (input.match(/\s*\d+0{2}\s*$/))
获胜者是......
if ((input.search(/\s*\d+0{2}\s*$/)==-1?"false":"true" !== "false"))
但如果我是你,我会先停下来。 :)
答案 3 :(得分:1)
使用Modulo检查余数是否为0。
答案 4 :(得分:1)
这样的事情对你有用:
var input = document.getElementById('mult-100');
if(input.value.match(/^[1-9]\d*00$/))
return false;
// Not a multiple of 100
alert('Please enter a multiple of 100');
答案 5 :(得分:0)
if(value % 100 == 0) { // if the remainder of a division by 100 is 0
// divides by 100
} else {
// doesn't!
}
正如poweroy所说,这是一个Modulo(见他的链接)。它只是百分号。它的作用是返回除法的剩余部分。
5/2 == 2 remainder 1
5 % 2 == 1 (the remainder)
答案 6 :(得分:0)
if ( parseInt($('#input').val(), 10) % 100 !== 0 ) {
alert('Value isn't a multiple of 100');
}
答案 7 :(得分:0)
试试这个:
$('#your_input_selector').keyup(function(){ alert('100 multiple? ' $(this).val() % 100 == 0)});