Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查javascript中的整数_Javascript - Fatal编程技术网

检查javascript中的整数

检查javascript中的整数,javascript,Javascript,我有一个正则表达式,我在其中检查文本条目是否是数字。这是Year字段,它应该只接受像1999或2000等整数,但在这种情况下,它也接受-,+。等等 isNumeric = function(b){ return(b-0) == b&&(b+"").replace(/^\s+|\s+$/g,"").length > 0 }; 你能帮帮我吗 您可以通过以下方式进行检查: if(!isNaN(parseInt(yourstring))){ } 使用regex,您可以

我有一个正则表达式,我在其中检查文本条目是否是数字。这是Year字段,它应该只接受像1999或2000等整数,但在这种情况下,它也接受-,+。等等

isNumeric = function(b){
    return(b-0) == b&&(b+"").replace(/^\s+|\s+$/g,"").length > 0
};
你能帮帮我吗

您可以通过以下方式进行检查:

if(!isNaN(parseInt(yourstring))){

}
使用regex,您可以执行以下操作:

/^[0-9]+$/i.test(yourstring)
您可以通过以下方式进行检查:

if(!isNaN(parseInt(yourstring))){

}
使用regex,您可以执行以下操作:

/^[0-9]+$/i.test(yourstring)

如果您需要接受20世纪和21世纪的年份,则可以使用更精致的regexp

isNumeric = function(b){
    return /^(19|20)\d{2}$/.test(b)
};
如果您需要始终接受4位数的年份,则正则表达式非常简单

/^\d{4}$/
如果您需要每年接受0到9999(其中不接受尾随的0)


如果您需要接受20世纪和21世纪的年份,则可以使用更精致的regexp

isNumeric = function(b){
    return /^(19|20)\d{2}$/.test(b)
};
如果您需要始终接受4位数的年份,则正则表达式非常简单

/^\d{4}$/
如果您需要每年接受0到9999(其中不接受尾随的0)


更好的解决方案是使用Javascript创建函数限制用户输入数字以外的键,如下所示:

function isNumber(evt) {
    evt = (evt) ? evt : window.event;
    var charCode = (evt.which) ? evt.which : evt.keyCode;
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        return false;
    }
    return true;
}
演示:


您还可以通过在收件箱中添加
maxlength=“4”
来限制用户只输入4个数字。

更好的解决方案是使用Javascript创建函数限制用户输入数字以外的键,如下所示:

function isNumber(evt) {
    evt = (evt) ? evt : window.event;
    var charCode = (evt.which) ? evt.which : evt.keyCode;
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        return false;
    }
    return true;
}
演示:


您还可以通过在收件箱中添加
maxlength=“4”
来限制用户只输入4个数字。

如果您希望验证一个(正)年的范围,例如1980年到2020年,其中字符串“+2000”不被接受

isNumeric = function(b){
    return /^(198\d|200\d|2020)$/.test(b);
}
这将通过以下测试-已测试

函数重命名为yearRange

yearRange = function(b){
    return /^(198\d|200\d|2020)$/.test(b);
}


test('Year range validation', function() {
   equal( yearRange(1979), false, '1979 returns false');
   equal( yearRange(1980), true, '1980 returns true');
   equal( yearRange('2000'), true, 'The string 2000 returns true');
   equal( yearRange(+2000), true, '+2000 returns true' );
   equal( yearRange(-2000), false, '-2000 returns false' );
   equal( yearRange('+2000'), false, 'The string +2000 returns false');
   equal( yearRange('-2000'), false, 'The string -2000 returns false');
});

如果您希望验证(正)年的范围,例如1980年至2020年,其中字符串“+2000”不被接受

isNumeric = function(b){
    return /^(198\d|200\d|2020)$/.test(b);
}
这将通过以下测试-已测试

函数重命名为yearRange

yearRange = function(b){
    return /^(198\d|200\d|2020)$/.test(b);
}


test('Year range validation', function() {
   equal( yearRange(1979), false, '1979 returns false');
   equal( yearRange(1980), true, '1980 returns true');
   equal( yearRange('2000'), true, 'The string 2000 returns true');
   equal( yearRange(+2000), true, '+2000 returns true' );
   equal( yearRange(-2000), false, '-2000 returns false' );
   equal( yearRange('+2000'), false, 'The string +2000 returns false');
   equal( yearRange('-2000'), false, 'The string -2000 returns false');
});

return/\d{4}/.test(b)
@pawel Why isNumeric(+1234”)为true??因为它通过了上述测试,对不起;)改为使用
/^\d{4}$/.test(b)
。它在Pawel中工作。非常感谢
return/\d{4}/.test(b)
@pawel Why isNumeric(+1234”)为true??因为它通过了上述测试,对不起;)改为使用
/^\d{4}$/.test(b)
。它在Pawel中工作。非常感谢
parseInt(“+123”)==123
parseInt(“+123”)==123