鍍金池/ 問答/PHP  Python  HTML/ 請寫一個函數(shù)來檢查用戶提交的數(shù)據(jù)是否為整數(shù)(不區(qū)分數(shù)據(jù)類型,可以為二進制、八進制

請寫一個函數(shù)來檢查用戶提交的數(shù)據(jù)是否為整數(shù)(不區(qū)分數(shù)據(jù)類型,可以為二進制、八進制、十進制、十六進制數(shù)字)

請寫一個函數(shù)來檢查用戶提交的數(shù)據(jù)是否為整數(shù)(不區(qū)分數(shù)據(jù)類型,可以為二進制、八進制、十進制、十六進制數(shù)字)

之前就有兄臺提過這個問題,但是一直沒有人回答。。我想再拋出來,學習一下。

回答
編輯回答
遲月

/^\d|[a-f]+$/ig

2018年3月1日 20:33
編輯回答
陌如玉

突然發(fā)現(xiàn)!NaN是true,改了一下


我的思路是對1求余就好,如果得到0以外的值就不是整數(shù)了,僅限js,其他語言沒試過。
js運算會自動轉換類型,所以給個十六進制字符串都沒問題。

var num = 123;
var isInt = !(isNaN(num) || num % 1);
2018年6月17日 08:00
編輯回答
別硬撐
>>> def check_int(num):
...     try:
...         result = isinstance(eval(num), int)
...     except TypeError:
...         result = isinstance(num, int)
...     return result
...

測試結果:

>>> check_int(3)
True
>>> oct(3)
'0o3'
>>> check_int(oct(3))
True
>>>
>>> hex(3)
'0x3'
>>> check_int(hex(3))
True
2017年1月2日 03:14