[英]Why is my function returning true when a string is passed?
我创建了一个函数来检查传递的参数是整数还是浮点数。 但是由于某种原因,当我传入一个字符串时,它会一直返回 true。 我不明白这是怎么回事??
如果有人能帮我解决这个问题,我将不胜感激
function isNumeric(val){
var patt = new RegExp('^[0-9]+$');
return (patt.test(val) || Math.floor(val) !== val);
}
console.log(isNumeric("Hello")); //Returns true??
此外,您可以参考下面的小提琴。 正则表达式模式成功,但 Math.floor() 评估有问题。
https://jsfiddle.net/joedonahue/8uw0cr4y/1/
function isNumeric(val){
var patt = new RegExp('^[0-9]+$');
return (patt.test(val));
//return Math.floor(val) !== val;
}
alert(isNumeric("Hello")); //Returns true??
当你传入一个字符串时,你有以下表达式:
patt.test("Hello") || Math.floor("Hello") !== "Hello"
然后变成:
false || NaN !== "Hello"
然后变成:
false || true
因为||
如果其中一个参数为真,则返回true
值,这将返回true
。
请参阅JavaScript 中是否有(内置)方法来检查字符串是否为有效数字? 了解如何正确执行检查。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.