javascript - 如何在 React 中检测小数作为数字
问题描述
我有这个函数用来检测值是否为整数。现在,当我输入十进制数字时,我在为数字设置的验证中抛出了一个错误。我将如何输入5.79之类的值。它仅适用于整数
这是检查整数的函数
static isInt(value: any) {
var x: any;
return typeof value =="number";
}
我使用此验证来检查输入值是否为数字
static checkNumber(value: number, minNumber: number, maxNumber: number): IValdationResuslt {
if (value >= minNumber) {
if (value <= maxNumber) {
return { state: true, message: `Valid` } as Valid;
}
return { state: false, message: `Max Characters ${maxNumber} : Entered ${value}` } as IValdationResuslt;
}
return { state: false, message: `Min Number ${minNumber} : Entered ${value}` } as Invalid;
}
这是数字的输入验证检查
static inputValidation(value: any, state: any) {
switch (state.type) {
case "number":
//check if the value is a valid number
if (this.isInt(value)) {
//check if the minNumber value hase been exceeded
return this.checkNumber(value, state.minNumber, state.maxNumber);
}
return {
state: false,
message: "The value entered is not a number"
}
as IValdationResuslt;
case "telephone":
//check if the max length value has been exceeded
if (this.isInt(value)) {
//check if the minNumber value hase been exceeded
return this.checkNumber(value, state.minNumber, state.maxNumber);
}
}
}
解决方案
您可以Number.isFinite()
用来评估输入是否为数字
const isNumber = (number) => Number.isFinite(number);
let num = 4;
console.log(`${num} is a number: ${isNumber(num)}`);
num = 4.54;
console.log(`${num} is a number: ${isNumber(num)}`);
num = 'a';
console.log(`${num} is a number: ${isNumber(num)}`);
// 4 is a number: true
// 4.54 is a number: true
// a is a number: false
推荐阅读
- android - Android Firestore db 每秒准确返回值
- react-native - 如何制作一张图片
标记更暗(React Native) - ios - 用于数据验证的 Swift VIPER Interactor 和 Presenter 规则
- python - 大文件并发读取
- html - @media 查询排序问题
- c# - C# 基本程序中的析构函数不起作用(输出缺失)
- c# - C# Task.Result 为空
- js-xlsx - 获取每个 JSON 对象中的合并单元格值
- security - 将 JWT 存储在 Javascript 可访问的 cookie 中是否危险
- ffmpeg - FFmpeg 瓷砖裁剪