javascript - 如何判断一个数字是否是十六进制的?

标签 javascript

我想要一个方法,如果给定一个十六进制数(例如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/

相关文章:

javascript - 如何在 javascript 中隐藏损坏的图像?

javascript - WordPress 文件的正则表达式

javascript - 发现for循环有14个操作,map方法有9个操作

javascript - SoundCloud Javascript SDK 2.0 - whileplaying 事件

JavaScript:使用 var 实现 let-working

javascript - 我将如何将变量从 .on() 事件传递到回调函数?

javascript - 为ajax构建一个数组?

javascript - jQuery 使用多个复选框作为过滤器和自定义属性来隐藏特定表行

javascript - 在javascript中按键名对对象数组进行排序

javascript - 查找对象数组中对象的索引