我编写了以下函数,以仅限制2个数字(小于100)的数字。
第一部分检查特殊的章程和信件。我陷入else
部分。
现在,我尝试限制仅2位数字(无小数)。但是,以下代码中的逻辑不起作用。我不允许在input type =number
中使用HTML
。 html输入类型是text
$(".allownumericTwo").on("input", function (evt) {
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 46)
return false;
else {
$(this).val($(this).val().match(\d{0,2});
}
return true;
});
答案 0 :(得分:0)
input event不是cancelable。它也没有键码的值。相反,您可以做的是检查该值是否有效,如果没有,将其重置为以前的值。您还需要将正则表达式模式放在斜杠之间,即/^\d{0,2}$/
。
例如
var oldValue = $(".allownumericTwo").val();
$(".allownumericTwo").on("input", function(evt) {
if (this.value.length > 0 && this.value.match(/^\d{0,2}$/) == null) {
this.value = oldValue;
} else {
oldValue = this.value;
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class='allownumericTwo'>
答案 1 :(得分:-1)
您可以使用isNumeric()
if($(this).val().length < 3)
{
if($.isNumeric($(this).val())){
//do something
}
}
答案 2 :(得分:-1)
这可能会有所帮助。 请记住,匹配返回一个数组。
function printFirstTwoNumbers(val) {
var regex = /^\d{0,2}/g;;
console.log(val.match(regex));
return true;
}
printFirstTwoNumbers('288.80');
printFirstTwoNumbers('2.80');
printFirstTwoNumbers('29898.80');
printFirstTwoNumbers('300');