JavaScript -检查输入是否为数字



我面临以下(基本)问题:我想检查来自html输入字段的输入是否不大于5或不是数字。如果给出了这个值,函数应该返回true。否则(因此,如果大于5或一个数字),它应该返回false。到目前为止,如果数字不大于5的验证工作得很好,但当我添加类型参数时,这个就不起作用了。这是我的代码到目前为止,提前感谢!

function isValidStart(start) {
if (start.trim().length > 5 || typeof(start) === 'number') {
return false
}
return true

Element.value(input, select, textarea等)将始终是字符串.

测试是否使用了一个单位数整数范围,可以通过一个小的Regex和RegExp.prototype.test()来实现。

测试长度为5的整数

const isValidStart = v => /^d{1,5}$/.test(v); // or use [0-5]
console.log(isValidStart("1"))     // true
console.log(isValidStart("55555")) // true
console.log(isValidStart(2))       // true
console.log(isValidStart("a12"))   // false

您甚至不必关心是String还是Number。

单一整数

:

匹配范围1到5的单个数字:

const isValidStart = v => /^[1-5]$/.test(v); // or use [0-5]
console.log(isValidStart("1")) // true
console.log(isValidStart(2))   // true
console.log(isValidStart("a")) // false
console.log(isValidStart("6")) // false

您可以使用Number.isFinite()函数来检查变量是否为有限数,在您的用例中,它应该执行任务。

let intVar = 2;
Number.isFinite(intVar);
$true

然而,看起来你的start变量实际上不是一个数字,因为你不能在一个数字上调用.trim()。所以这个if语句永远不会返回True。

应该对变量进行类型转换。https://www.w3schools.com/js/js_type_conversion.asp

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

相关内容

  • 没有找到相关文章

最新更新