使用javascript进行整数验证


Integer Validation using javascript

我使用以下代码来验证字段是否为空。

<label>Sermon Title</label>
<input class="text-input small-input" type="text" id="sermon_title" name="sermon_title" />
<span id="stitlespansuccess" class="input-notification success png_bg" style="display: none;"></span>
<span id="stitlespanerror" class="input-notification error png_bg" style="display: none;"></span>
    $(document).ready(function () {  
        var submit           = false;
        $('#sermon_title').bind('focusout', function() {
            var sermon_title       = $('#sermon_title').val();
            var pid       = $('#preacher').val();
            if( sermon_title == "") {
                $('#stitlespanerror').html("Title required");
                $('#stitlespanerror').show();
                $('#stitlespansuccess').hide();
                submit = false;
            }
            else
            {
                $('#stitlespanerror').hide();
                $.post("<?= site_url('admin/sermons/uniquetitle/') ?>", { sermon_title: sermon_title,pid:pid },
                function(data){
                    if( "success" == data.trim() ) {
                        $('#stitlespansuccess').show();
                        submit = true;
                    }
                    else
                    {
                        $('#stitlespansuccess').hide();
                        $('#stitlespanerror').html("Title already taken");
                        $('#stitlespanerror').show();
                        submit = false;
                    }
                });
            }
        });
});

我想检查值是否为整数。

这是检查整数的正确函数(例如:1.0等)

function is_int(value){ 
  if((parseFloat(value) == parseInt(value)) && !isNaN(value)){
    return true;
  } else { 
    return false;
  } 
}

try this

如果(isNaN(值))

希望能成功

要检查what值是否为整数?肯定不是讲道题目吧?这里有很多代码看起来和你的问题一点关系都没有

无论如何,假设您想要验证用户输入的值以确保它是整数,您可以将其转换为数字,然后测试该数字是否等于相同的数字:

function isInteger(val) {
   var n = +val;    // convert with unary plus operator
   return val != "" && n === Math.floor(n);
}

请注意,空字符串将转换为0,因此测试val不是空字符串。

潜在问题:上面将"1.000"视为整数-这是可以接受的吗?

如果您不希望用户输入小数点,另一种方法是使用regex进行验证,确保只输入了数字(没有小数点):

function isInteger(val) {
   return /^-?'d+$/.test(val);
}

如果您需要将其限制为一定数量的数字,这很容易使用regex:

// e.g., max four digits, optional minus sign:
return /^-?'d{1,4}$/.test(val);

(注:' isNaN()是"broken".)