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

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

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

之前就有兄臺(tái)提過這個(gè)問題,但是一直沒有人回答。。我想再拋出來,學(xué)習(xí)一下。

回答
編輯回答
遲月

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

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

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


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

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
...

測試結(jié)果:

>>> 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