使用测试检查输入的值是不是为数字或字母[重复]

Posted

技术标签:

【中文标题】使用测试检查输入的值是不是为数字或字母[重复]【英文标题】:checking for inputted value if numbers or letters using test [duplicate]使用测试检查输入的值是否为数字或字母[重复] 【发布时间】:2017-07-21 21:32:08 【问题描述】:

$('input').on("input", function() 
  if (isWhole($(this).val())) 
    return false;
    //$(this).removeAttr("style").removeClass("not");
   else 
    //$(this).css("border", "2px solid red").addClass("not");

  
);


function isWhole(n) 
  return /^\d+$/.test(n);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="" type="text" id="" />

在这个 OP 中,我想让用户只输入数字。如果他们输入字母,则不应被允许,这意味着不应将其写入输入中。

    我用test来测试输入的数据是不是数字。 当我输入字母时添加注释返回 false 边框。如果我输入的数字边框被删除,这是我想要的结果。 单独使用 return false 进行了尝试。我假设它不会让输入的字母显示,但它仍在显示。 如何不让用户输入字母

【问题讨论】:

Can you use &lt;input type='number'&gt; 为您省去了使用 js 进行额外检查的所有麻烦。 htmlgoodies.com/html5/tutorials/… @ClydeLobo 我不喜欢使用数字类型输入的上下键 【参考方案1】:

测试该值,如果一个数字允许它 - 或者在这种情况下,允许它的数字部分

$('input').on("input", function(e) 
  var val = this.value;
  if (!isWhole(val)) 
    var num = parseInt(val);
    $(this).val(isNaN(num)?"":num);
  
);


function isWhole(n) 
  return /^\d+$/.test(n);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="" type="text" id="" />

【讨论】:

问题为什么我的代码不起作用? 因为你没有通过 return false 停止任何事情 我需要 4 分钟打勾 :) 我喜欢它............【参考方案2】:

只需将任何非数字符号替换为空字符串:

$('input').on("input", function(e) 
    $(this).val($(this).val().replace(/[^\d]/, ''));
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" />

【讨论】:

问题为什么我的代码不起作用?

以上是关于使用测试检查输入的值是不是为数字或字母[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何检查是不是在 KeyUp 事件的文本框中输入了数字或字母 [重复]

检查 TextBox 输入是不是为十进制数 - C#

检查输入的值是不是为数字

检查返回的值是不是为空[重复]

如何检查字符串是不是为数字? [复制]

检查输入字符串是不是包含javascript中的数字