【发布时间】:2018-10-21 05:03:52
【问题描述】:
假设我需要用户输入二进制或十六进制值,程序将从那里获取。有没有办法区分他们输入的值是二进制还是十六进制?
我以为我已经通过检查字符串是否包含大于 1 的字母或数字来弄清楚它,但是在 101101 或其他类似的十六进制输入的情况下呢?甚至可以在没有任何其他上下文的情况下知道吗?
为了包括失败的尝试,我尝试了以下方法来检查字符串是否包含十六进制值可以的字母:
if (Number.isInteger(parseInt(input)))
但除了它没有解决上述问题(因为十六进制值并不总是有字母)之外,它也失败了,因为当字母混合到输入中时它仍然返回 true,因为它仍然以一种或另一种方式解析整数。
【问题讨论】:
-
如您所见,有些值可能是二进制或十六进制,而您仅通过查看字符串就无法了解用户意图,这怎么可能?
-
@stephen.vakil 补充说,相同的数字可以是十进制或八进制,它仍然有效。如果有人在不询问他们的情况下将其写在纸上,您就无法告诉 IRL,因此我真的看不出您如何以编程方式进行操作。我认为读心模块尚未准备好进行 beta 测试。
-
@stephen.vakil 我有点知道这个问题的答案并认为是这样,但我想获得更有经验的开发人员的意见,因为我无法通过谷歌搜索转换器或正则表达式测试找到更多其他内容在我上面提供的值上失败了。
标签: javascript binary hex