如何只限制输入字段中的数值?

时间:2013-11-25 05:49:41

标签: javascript jquery

在我的代码中,我只将数值限制在输入字段中,因为我正在使用此代码。

if($('.calculator #loan_Amount').val() != "") {
    var value = $('.calculator #loan_Amount').val().replace(/^\s\s*/, '').replace(/\s\s*$/, '');
    var intRegex = /^\d+$/;
    if(!intRegex.test(value)) {
        alert('Loan amount must be numeric.');
        return false;
    }
} 

但是现在如果我输入值6500.25,它表示该值必须是数字,它不会将十进制数字作为数字。任何有关于它的想法的机构

5 个答案:

答案 0 :(得分:4)

\d+表示一个或多个整数不是浮点数,因此失败。

使用Regex

试试这个\d+(\.\d*)*意味着

enter image description here

使用jQuery

由于您已经使用了jquery,因此最好使用$.isNumeric()

if($('.calculator #loan_Amount').val() != "") {
   if(!$.isNmeric(this.value) {
        alert('Loan amount must be numeric.');
        return false;
    }
} 

答案 1 :(得分:0)

使用jQuery Masked Input plugin,可以忽略除数字之外的其他键。它还允许您进行自定义数字分组(即千位分隔符),而无需用户点击逗号键。请查看this page上的演示标签。

答案 2 :(得分:0)

$('.calculator #loan_Amount').keyup(function(){
    var iptext = $(this).val();
    if(!(iptext.match('^(0|[1-9][0-9]*)$')))
    {
        $(this).val('');
    }
});

这只接受数值。

答案 3 :(得分:0)

这是一个阻止所有非数字输入进入文本字段的解决方案。

HTML

<input type="text" id="numbersOnly" />

的javascript

var input = document.getElementById('numbersOnly');
input.onkeydown = function(e) {
    var k = e.which;
    /* numeric inputs can come from the keypad or the numeric row at the top */
    if ( (k < 48 || k > 57) && (k < 96 || k > 105)) {
        e.preventDefault();
        return false;
    }
};​

答案 4 :(得分:0)

您可以使用JavaScript isNaN(value)方法,如果值(非数字)则返回true,否则返回false

  if($('.calculator #loan_Amount').val() != "") {
    var value = $('.calculator #loan_Amount').val().replace(/^\s\s*/, '').replace(/\s\s*$/, '');
    if(isNaN(value)) 
    {
        alert('Loan amount must be numeric.');
        return false;
    }
} 

希望这有助于你。