【发布时间】:2019-11-06 18:42:34
【问题描述】:
我需要在每个 00 字节处拆分一个十六进制字符串。我试过这个:
string.split('00');
但这会导致在5009 处发生拆分,例如,这是不正确的,因为它将一个字节分成两半。
换句话说,它会将5009 变成[5, 9],这是我不想要的。但我确实希望它把af0059 变成[af, 59]。
是否甚至可以使用正则表达式拆分字节,而不将任何字节切成两半?
我可以使用循环来查找字符串,并且只在偶数索引处划分字符串,但我更喜欢正则表达式。
【问题讨论】:
-
为什么我的问题会立即被否决?
-
你不是
.split()一个十六进制数字,你是在一个字符串上操作。字符串中有“两个字符”字节的定义。 (我没有对你投反对票)。 -
我的观点是一个字符串是一个字符串是一个字符串。在 UTF-16 中,每个字符有两个字节,但您指的是每个字节有两个字符(就好像它是一个十六进制数字一样)。
-
我可以给出一个有点老派的解决方案,但在我理解之前......字符串 IS 填充了十六进制数字,其中每一对都是一个数字,正确?
-
@CocoDaWhiteBerry 我没有专门看它,因为我在发布它时正在挖掘我自己的示例/解决方案。但是,如果解决方案被证明不起作用,您是否不应该取消选中它作为“最终答案”并选中一个? (我不知道 Stackoverflow 是否允许你这样做)
标签: javascript regex string split hex