An improved isNumeric() function?

前端 未结 7 1608
轮回少年
轮回少年 2021-02-01 14:00

During some projects I have needed to validate some data and be as certain as possible that it is javascript numerical value that can be used in mathematical operations.

7条回答
  •  春和景丽
    2021-02-01 14:39

    In my opinion, if it's an array then its not numeric. To alleviate this problem, I added a check to discount arrays from the logic

    You can have that problem with any other object as well, for example {toString:function(){return "1.2";}}. Which objects would you think were numeric? Number objects? None?

    Instead of trying to blacklist some things that fail your test, you should explicitly whitelist the things you want to be numeric. What is your function supposed to get, primitive strings and numbers? Then test exactly for them:

    (typeof n == "string" || typeof n == "number")
    

提交回复
热议问题