繁体   English   中英

为什么我的函数在传递字符串时返回 true?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM