js判断输入是否为数字
封面图
•
2025-10-25
•
JavaScript
199
0
0
0
在 JavaScript 中,判断输入是否为数字有多种方法。以下是一些常见的方法: --- ### ✅ 方法一:使用 `typeof` 和 `isFinite` ```javascript function isNumber(input) { return typeof input === 'number' && isFinite(input); } console.log(isNumber(123)); // true console.log(isNumber("123")); // false console.log(isNumber(NaN)); // false console.log(isNumber(Infinity)); // false ``` --- ### ✅ 方法二:使用 `isNaN()` 和 `parseFloat()` ```javascript function isNumber(input) { return !isNaN(parseFloat(input)) && isFinite(input); } console.log(isNumber("123")); // true console.log(isNumber("abc")); // false console.log(isNumber("123.45")); // true console.log(isNumber("123a")); // false ``` > ⚠️ 注意:`isNaN()` 会尝试将字符串转换为数字,所以 `"123"` 会被认为是数字。 --- ### ✅ 方法三:使用正则表达式(严格判断) ```javascript function isNumber(input) { return /^-?\d+\.?\d*$/.test(input); } console.log(isNumber("123")); // true console.log(isNumber("-123.45")); // true console.log(isNumber("abc")); // false console.log(isNumber("123.45.67")); // false ``` > 这个方法只适用于字符串形式的数字,不包括 `NaN`、`Infinity` 等特殊值。 --- ### ✅ 方法四:使用 `Number.isFinite()` ```javascript function isNumber(input) { return Number.isFinite(input); } console.log(isNumber(123)); // true console.log(isNumber("123")); // false console.log(isNumber(NaN)); // false console.log(isNumber(Infinity)); // false ``` --- ### ✅ 总结 | 方法 | 是否支持字符串? | 是否支持 NaN/Infinity? | 是否推荐 | |------|------------------|--------------------------|----------| | `typeof + isFinite` | ❌ | ❌ | ✅ | | `isNaN + parseFloat` | ✅ | ❌ | ✅ | | 正则表达式 | ✅ | ❌ | ✅(仅限字符串) | | `Number.isFinite` | ❌ | ❌ | ✅ | --- 如果你需要判断用户输入(例如来自 `<input>` 的值),建议使用: ```javascript const input = document.getElementById('myInput').value; if (!isNaN(input) && isFinite(input)) { console.log("是数字"); } else { console.log("不是数字"); } ``` 如需进一步处理浮点数、负数等,可以根据需求调整逻辑。需要我帮你写一个完整的表单验证例子吗?
上一篇:
用XML+FSO+JS实现服务器端文件的选择
下一篇:
js判断undefined类型
标题录入,一次不能超过6条
留言
评论