使用javascript进行整数验证

时间:2012-01-02 08:03:00

标签: php javascript validation codeigniter

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

<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;
                    }
                });
            }
        });
});

我想检查值是否为整数。

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

试试这个

if(isNaN(value))

希望它能运作

答案 2 :(得分:0)

您想检查 值是否为整数?肯定不是布道冠军?那里有很多代码似乎与你的问题无关。

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

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

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

潜在问题:以上会将“1.000”视为整数 - 是否可以接受?

如果您不希望用户输入小数点,则另一种方法是使用正则表达式进行验证,确保仅输入数字(无小数点):

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

如果您需要将其限制为一定数量的数字,使用正则表达式很容易:

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

(注:`isNaN() is "broken"。)