純JavaScript中是否有像IsNumeric這樣的函數?我知道jQuery有這個函數來檢查整數。有沒有像JavaScript中的IsNumeric函數來驗證數字的功能?
回答
有沒有ISNUMERIC類型的功能,但你可以這樣做:
if(parseInt(yourVal, 10) > 0) {
...numeric value
}
或添加您自己:
function isNumeric(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
注:由於parseInt()是不檢查數字的正確方法是「不應該被使用」。
使用parseInt是不正確的方法。因此,'parseInt('12343asdfd',10)'將變成數字。 – dfsq 2012-03-15 08:57:48
我不明白'parseFloat'是多麼的好。 'parseFloat('12343asdfd')'也導致編號爲'12343'(至少在我的瀏覽器中 - 「Chromium 39.0.2171.65 Ubuntu 14.10(64位)'')。實際上'parseInt('12343asdfd',10)=== parseFloat('12343asdfd')'是'true'。 – Thor84no 2014-12-04 11:21:30
此解決方案用於/取自Jquery庫$ .isNumeric(obj)http://api.jquery.com/jquery.isnumeric/ – ThdK 2015-01-12 12:12:31
這本應幫助:
function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
不適用於'isNumber('2')'。它返回true。 – 2017-01-23 09:57:30
@Dimko Desu,那是因爲'2'不是數字,而是2。嘗試不帶撇號。 – Doruk 2017-02-10 10:23:06
@Doruk我寫了同樣的。 ''2'不是一個數字,它是一個字符串。該函數應該返回false。但是這個解決方案返回'true'。這是不對的。 – 2017-02-10 12:06:43
,除了「」和真假,它們不是一個數字...... – commonpike 2012-11-30 16:17:24
我得到了'isNaN(null)=== false' – jayflo 2016-06-08 21:50:16
'isNaN(「null」)=== true; isNaN(null)=== false;'對我來說 – cmeza 2018-02-14 16:14:37
isFinite的(字符串(n))的返回true對於n = 0或 '0', '1.1' 或1.1檢查數字,
但對於'1狗'或'1,2,3,4',+ - 無窮大和任何NaN值都是錯誤的。
isFinite(null) - > true,isFinite([]) - > true,isFinite('')true – prototype 2013-02-07 17:11:19
從ES2015開始,有[Number.isFinite](https: //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite) – 2017-09-20 14:40:10
var str = 'test343',
isNumeric = /^[-+]?(\d+|\d+\.\d*|\d*\.\d+)$/;
isNumeric.test(str);
那麼,根據使用情況,這可能實際上是這裏最糟糕的答案。例如,這會返回''1'或'0x01'的'false',本地化不會被考慮在內...... – 2014-07-25 20:49:38
如果您正在從字符串或用戶輸入中讀取塊,我更喜歡這個答案,isNaN和parseInt會導致不需要的誤報,如「123abc」,「2e1」,「0x2」等。(甚至jQuery.isNumeric也會解析爲真)。我會用這樣的'function isNumeric(str){return /^\d*\.{0,1}\d*$/.test(str); }' – ebob 2017-05-01 19:19:46
那麼,根據使用情況,它可能實際上是這裏最好的答案。 – 2017-12-20 19:19:11
function IsNumeric(val) {
return Number(parseFloat(val)) === val;
}
我認爲這裏的更新版本實際上是最好的答案。我覺得奇怪的是它的票數最少。我一開始以爲,如果用'NaN'調用'IsNumeric',它可能會失敗,但由於NaN的怪癖,它不等於任何實際上可以正常工作的東西。 – Thor84no 2014-12-04 11:31:12
我想你也可以將演員放到'Number()',並依靠雙等於做一點轉換: 'let isNumeric =(val)=> parseFloat(val)== val;' – 2016-08-31 11:40:11
根據我的要求,我相信許多其他開發人員應該是它應該是 函數IsNumeric(val){ return Number(val)== val; } 因此,它忽略空字符串的情況。因爲我只想驗證是否輸入了無效值。同時允許不是數字的空字符串。 我認爲所有三個答案都很好根據情景 – 2016-09-01 22:40:27
- 1. 的jQuery + ColdFusion的,ISNUMERIC沒有驗證
- 2. JavaScript函數沒有驗證的形式
- 3. javascript數字驗證功能
- 4. Jquery驗證成功函數沒有清除重新驗證的有效標籤?
- 5. Javascript函數來驗證AES字符串?
- 6. JQuery的提交功能沒有驗證
- 7. 功能與JavaScript中的對象和沒有函數的實例
- 8. 驗證數字字段的功能
- 9. JQuery的驗證 - 成功函數在未能有效提交
- 10. 必填字段校驗器的JavaScript功能確認沒有驗證
- 11. 如何驗證沒有驗證功能的Crypto ++的ECDSA簽名?
- 12. 的Javascript功能來驗證密碼
- 13. JavaScript函數來驗證一個數組
- 14. 有沒有什麼方法可以用我自己的驗證功能來輸入一個塊/函數?
- 15. 有沒有辦法加快django中的身份驗證功能?
- 16. ISNUMERIC函數中的錯誤?
- 17. 驗證功能沒有在骨幹
- 18. 使用System.Net.Mail時沒有驗證功能
- 19. Ajax php驗證沒有功能
- 20. GCC 4.0:「沒有匹配的函數來調用」模板功能
- 21. 升級javascript功能。沒有經驗
- 22. 如何在JavaScript中驗證所有具有相同功能的字段?
- 23. Javascript驗證功能
- 24. 驗證回調從來沒有調用函數
- 25. 有沒有辦法在Hapi驗證中使用命名函數?
- 26. JavaScript驗證沒有驗證權利
- 27. 驗證表內沒有空字段javascript
- 28. Javascript空字段沒有正確驗證
- 29. 證明函數沒有適當的輸入驗證
- 30. 如何在Javascript(Jquery)中定義驗證器函數來驗證輸入字段?
如果你碰巧使用jQuery你可以使用$ .isNumeric那是在1.7版本引入。 http://api.jquery.com/jQuery.isNumeric/ – Stefan 2012-03-15 09:06:12
選中此問題(http://stackoverflow.com/questions/18082/validate-numbers-in-javascript-isnumeric)。 – Zeina 2012-03-15 08:56:19
在純JavaScript中:https://github.com/jonschlinkert/is-number – 2018-02-08 22:28:43