【发布时间】:2017-01-16 13:20:24
【问题描述】:
我尝试从包含十六进制字节表示的字符串中提取字节值。该字符串还包含(未知)需要忽略的非十六进制字符(分隔符、空格格式)。
给定输入字符串"f5 df 45:f8 a 8 f53",结果将是数组[245, 223, 69, 248, 168, 245]。请注意,字节值仅从两个十六进制数字输出(因此,最后一个 3 被忽略)。
作为附加约束,代码需要在 ecmascript 3 环境中工作。
到目前为止,我一直使用这种方法:
function parseHex(hex){
hex = hex.replace(/[^0-9a-fA-F]/g, '');
var i,
len = hex.length,
bin = [];
for(i = 0; i < len - 1; i += 2){
bin.push(+('0x' + hex.substring(i, i + 2)));
}
return bin;
}
但是,我觉得有可能找到一个更优雅的解决方案,所以问题是:
是否有更好的解决方案来解决这个问题(性能更好或用更少的代码解决问题)?
【问题讨论】:
-
在您的帖子中找不到任何问题。
-
@ceving,试图澄清这个问题。
-
@ceving,试图研究是否应该将这个问题发布到 codereview,但我还不相信它对 SO 来说是题外话。这个guide to code review for SO users 特别建议:“请不要以‘它属于代码审查’的自定义理由投票结束”
标签: javascript hex byte converter