JavaScript-检查输入是否为数字
我面临以下(基本)问题:我想检查来自HTML输入字段的输入是否不大于5或不是数字。如果给定此值,函数应返回true。否则(如果大于5或一个数字),它应该重新返回false。到目前为止,如果数字不大于5,则验证工作正常,但当我添加参数类型时,这一项不工作。 这是我到目前为止的代码,提前谢谢JavaScript-检查输入是否为数字,javascript,validation,Javascript,Validation,我面临以下(基本)问题:我想检查来自HTML输入字段的输入是否不大于5或不是数字。如果给定此值,函数应返回true。否则(如果大于5或一个数字),它应该重新返回false。到目前为止,如果数字不大于5,则验证工作正常,但当我添加参数类型时,这一项不工作。 这是我到目前为止的代码,提前谢谢 function isValidStart(start) { if (start.trim().length > 5 || typeof(start) === 'number') { return
function isValidStart(start) {
if (start.trim().length > 5 || typeof(start) === 'number') {
return false
}
return true
元素。值
(输入、选择、文本区域等)将始终是字符串
测试是否使用了一个位数的整数范围,可以用一个小的正则表达式和
测试长度为5的整数
const isValidStart=v=>/^\d{1,5}$/.test(v);//或使用[0-5]
console.log(isValidStart(“1”)//true
log(isValidStart(“55555”)//true
console.log(isValidStart(2))//true
console.log(isValidStart(“a12”)//false
您可以使用Number.isFinite()
函数来检查变量是否为有限数,在您的用例中,它应该完成这项工作
let intVar = 2;
Number.isFinite(intVar);
$true
但是,看起来您的start
变量实际上不是一个数字,因为您不能对数字调用.trim()
。所以这个if语句永远不会返回True
你应该输入你的变量 1)HTML输入返回字符串值。2) 数字没有
trim
方法。因此,第二个条件永远不会为真3)您是否检查了start.trim()
和start.trim().length
的值?它检查字符串的长度是否大于5。请调试您的代码。查看parseInt()和isNaN()(offtopic)不要使用typeof(start)
-而是typeof start
他说数字不应该是字符串,您正在检查string@AhmadHabib我想他的意思是:字符串不应该是字母,只应该是数字。不,他的问题是无效的。
let reg = new RegExp(/^\d{0,5}$/);
console.log(reg.test('1'));
console.log(reg.test('12'));
console.log(reg.test('123'));
console.log(reg.test('1234'));
console.log(reg.test('12345'));
console.log(reg.test('string'));
console.log(reg.test('124var123'));