在 JavaScript 中验证十进制数:IsNumeric()
问题陈述:
确定在 JavaScript 中验证十进制数字最有效、最清晰的方法,确保跨平台兼容性。
测试用例:
- IsNumeric('-1') → true
- IsNumeric('-1.5') → true
- IsNumeric('0') → true
- IsNumeric('0.42 ') → true
- IsNumeric('.42') → true
- IsNumeric('99,999 ') → false
- IsNumeric('0x89f') → false
- IsNumeric('#abcdef ') → false
- IsNumeric('1.2.3') → false
- IsNumeric(' ') → false
- IsNumeric('blah') → false
解决方案:
为了实现通用数字验证,无论数据类型如何,组合建议使用 isNaN 和 isFinite:
function isNumeric(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
此代码有效地将任何输入强制转换为数字并检查有效性和有限性。但是,需要注意的是,它还会将十六进制和指数格式视为数字。
其他方法:
-
jQuery 的 isNumeric: 将原始输入字符串与其浮点表示形式进行比较,以确定它们的差异是否小于1.
-
Angular 4.3 isNumeric:从浮点表示中减去值并检查非 NaN 结果。
注意事项:
- 利用ES6 中的 Number.isNaN 和 Number.isFinite 用于改进类型转换处理。
- 提供的解决方案将所有数值视为有效,包括十六进制和指数格式。根据具体验证要求调整实施。
以上是如何在 JavaScript 中有效验证十进制数字?的详细内容。更多信息请关注PHP中文网其他相关文章!