2016-07-08 8 views
-1

渡される引数が整数か浮動小数点数かをチェックする関数を作成しました。しかし何らかの理由で、私は文字列を渡すと真に戻ります。私はこれがどう起こっているのか分からないのですか?文字列が渡されたときに関数がtrueを返すのはなぜですか?

誰もが、私はさらに

function isNumeric(val){ 

    var patt = new RegExp('^[0-9]+$'); 

    return (patt.test(val) || Math.floor(val) !== val); 



} 


console.log(isNumeric("Hello")); //Returns true?? 
+0

'Math.floor(val)!== val''は' NaN!== "Hello" 'という結果になります。 'patt.test(val)'( 'false')からの正しい結果で' return false || true;は真である。 – Xufox

答えて

0

それを本当に感謝し、私はこれを理解することができた場合は、以下のフィドルを参照することができます。正規表現のパターンは成功しますが、Math.floor()の評価には問題があります。その後になっ

patt.test("Hello") || Math.floor("Hello") !== "Hello" 

:その後となり

false || NaN !== "Hello" 

を:あなたは、文字列を渡すと

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?? 
関連する問題