Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何验证文本框以检查输入的值是否仅为100的倍数_Javascript_Jquery - Fatal编程技术网

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

Javascript 如何验证文本框以检查输入的值是否仅为100的倍数,javascript,jquery,Javascript,Jquery,我想使用jQuery验证用户在文本框中输入的值是否是100的倍数。如何执行此操作?用于检查余数是否为0 正如poweroy所说,这是一个模(参见他的链接)。这只是个百分号。它所做的是返回除法的剩余部分 如 这将检查匹配的元素值是否为100的倍数,并将结果(true或false)存储在multiple: $("#example").change(function() { var multiple = parseInt($(this).val(), 10) % 100 == 0; });

我想使用jQuery验证用户在文本框中输入的值是否是100的倍数。如何执行此操作?

用于检查余数是否为0

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


这将检查匹配的元素值是否为100的倍数,并将结果(
true
false
)存储在
multiple

$("#example").change(function() {
   var multiple = parseInt($(this).val(), 10) % 100 == 0; 
});
请注意,这将导致
0
返回
true
,因此您可能需要为此添加签入

这是一个例子。有关模运算符的详细信息,请参见

更新(基于评论)

正如@PaulPRO在评论中所指出的,对于诸如100.973之类的数字,上述值也将返回true。如果要处理浮点数和整数,只需使用
parseFloat
而不是
parseInt
。下面是另一个,下面是一些更新的代码:

$("#example").change(function() {
   var multiple = parseFloat($(this).val()) % 100 == 0; 
});

像这样的东西对你有用:

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');
试试这个:

$('#your_input_selector').keyup(function(){ alert('100 multiple? ' $(this).val() % 100 == 0)});

有很多有趣的方式。让我们收集输入值本身:

var input = $('#textbox').val();
因此,方法:

  • 正确的方法

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

    if (input.substr(-2)==='00')
    
  • “我喜欢单打”

  • 正则表达式

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

  • 获胜者是

    if ((input.search(/\s*\d+0{2}\s*$/)==-1?"false":"true" !== "false"))
    

  • 但如果我是你,我会选择第一条路

    不确定它是否与OP有关,但100.973也将被认为是有效的。@PaulPRO-好的观点。我已经用另一种方法更新了答案。酷:)+1这也会接受像
    “100美元”
    这样的字符串作为有效字符串,但可能OP希望这样。嗯。另一个好观点+为您的答案添加1,以获得更严格的替代方案!我不知道为什么这会被否决——我本以为只要“modulo”一词就足以让提问者明白这一点。事实上,我甚至提供了一个JS示例。
    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"))