如何验证文本框以检查输入的值是否仅为100的倍数

时间:2011-08-30 10:05:20

标签: javascript jquery

我想验证用户在文本框中输入的值是使用jQuery的100的倍数。我怎么能这样做?

8 个答案:

答案 0 :(得分:6)

这将检查匹配#example的元素的值是否为100的倍数,并将结果(truefalse)存储在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();

所以,方式:

  1. 无聊的正确方式

    if (parseInt(input,10) % 100 === 0)
    
  2. 更有趣的方式

    if (input.substr(-2)==='00')
    
  3. “我爱奇怪的基地”

    if (parseInt(value,13) % parseInt('79',13) === 0)
    
  4. 的正则表达式

    if (input.match(/[1-9]+00$/))
    
  5. 更有趣(但绝对更强大)的正则表达式

    if (input.match(/\s*\d+0{2}\s*$/))
    
  6. 获胜者是......

    if ((input.search(/\s*\d+0{2}\s*$/)==-1?"false":"true" !== "false"))
    
  7. 但如果我是你,我会先停下来。 :)

答案 3 :(得分:1)

使用Modulo检查余数是否为0。

http://jsfiddle.net/jSfXC/

答案 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');

JSFiddle Example

答案 5 :(得分:0)

if(value % 100 == 0) { // if the remainder of a division by 100 is 0
  // divides by 100
} else {
  // doesn't!
}

正如poweroy所说,这是一个Modulo(见他的链接)。它只是百分号。它的作用是返回除法的剩余部分。

EG

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)});