我想要一个方法,如果给定一个十六进制数(例如0x01
),则返回true
。我尝试使用字符串参数,但我需要数字类型检查!例如:
isHex(0x0d) //-> true
isHex(12) //-> false
最佳答案
这是不可能的,因为十六进制数字文字只是表示相同数字的另一种方式(在解析过程中进行翻译),并且无法区分它们:
0x10 //=> 16
0x10.toString() //=> '16'
typeof 0x10 //=> 'number'
typeof 16 //=> 'number'
只有当您将文字作为字符串传递时才可能实现:
function isHex(num) {
return Boolean(num.match(/^0x[0-9a-f]+$/i))
}
isHex('0x1a') //=> true
isHex('16') //=> false
关于javascript - 如何判断一个数字是否是十六进制的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41333648/