使用测试检查输入的值是不是为数字或字母[重复]
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<input type='number'>
为您省去了使用 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" />
【讨论】:
问题为什么我的代码不起作用?以上是关于使用测试检查输入的值是不是为数字或字母[重复]的主要内容,如果未能解决你的问题,请参考以下文章