【问题标题】:Checking text is only decimal numbers or not?检查文本是否只是十进制数字?
【发布时间】:2020-10-07 08:06:26
【问题描述】:
有没有最有效的方法来验证 JavaScript 中的十进制数?
例如如下:
01. IsDec('-7.7') => true
02. IsDec('-18') => true
03. IsDec('0') => true
04. IsDec('.845') => true
05. IsDec('0.957') => true
06. IsDec('0x45f') => false
07. IsDec('15,87') => false
08. IsDec('#text') => false
09. IsDec('75.95.69') => false
10. IsDec('') => false
11. IsDec('someText') => false
【问题讨论】:
标签:
javascript
validation
numbers
decimal
【解决方案1】:
试试这样:
console.log(isDec("-12.5"));
console.log(isDec("12.5"));
console.log(isDec("0"));
console.log(isDec(".45"));
console.log(isDec("1,5"));
console.log(isDec("#ssdr"));
function isDec(txt) {
return !isNaN(parseFloat(txt)) && isFinite(txt);
}
【解决方案2】:
这是一个用于检查的正则表达式。
/^-?\d*\.?\d*(?<!^\.?)$/
console.log('--- true cases ---');
console.log(isDec('-7.7'));
console.log(isDec('-18'));
console.log(isDec('0'));
console.log(isDec('.845'));
console.log(isDec('0.957'));
console.log(isDec('16.'));
console.log('--- false cases ---');
console.log(isDec('0x45f'));
console.log(isDec('15,87'));
console.log(isDec('#text'));
console.log(isDec('75.95.69'));
console.log(isDec(''));
console.log(isDec('someText'));
console.log(isDec('.'));
function isDec(txt) {
const regex = /^-?\d*\.?\d*(?<!^\.?)$/;
return regex.test(txt);
}
查看结果here
【解决方案3】:
请尝试以下检查十进制数的功能
function isDecimal(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
答案:
isDecimal('-7.7') => true