# Split Hex string to 4 bytes

**URL:** <https://discourse.nodered.org/t/split-hex-string-to-4-bytes/70874>\
**Category:** General\
**Created:** [19 November 2022 14:05 UTC](https://discourse.nodered.org/t/split-hex-string-to-4-bytes/70874 "2022-11-19T14:05:33Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![GRHMLGGT](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/grhmlggt/32/59269_2.png) [@GRHMLGGT](https://discourse.nodered.org/u/GRHMLGGT)\
**Post date:** [19 November 2022 14:05 UTC](https://discourse.nodered.org/t/split-hex-string-to-4-bytes/70874/1 "2022-11-19T14:05:33Z")

</div>

I want to split a hex string and work on each part separately, if i have a string such as "00D7FD0000280001" id like to be able split it out into 4 bytes. Any resources anyone can point me to?

Thanks

---

<div class="post-metadata">

**Author:** ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)\
**Post date:** [19 November 2022 14:26 UTC](https://discourse.nodered.org/t/split-hex-string-to-4-bytes/70874/2 "2022-11-19T14:26:37Z")

</div>

Here is one way you could do it. Since a string can be treated as an array you could do

```auto
let str = msg.payload;
let part1 = str[0] + str[1] + str[2] + str[3]
msg.payload = part1
return msg;

```

Here is a small flow example:

```auto
[{"id":"28f3db305ae1d0da","type":"inject","z":"c2a7ae641f1483bf","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"00D7FD0000280001","payloadType":"str","x":150,"y":160,"wires":[["c349423ce597fe93"]]},{"id":"c349423ce597fe93","type":"function","z":"c2a7ae641f1483bf","name":"function 5","func":"let str = msg.payload;\nlet part1 = str[0] + str[1] + str[2] + str[3]\nmsg.payload = part1\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":340,"y":160,"wires":[["087cedc91da944ac"]]},{"id":"087cedc91da944ac","type":"debug","z":"c2a7ae641f1483bf","name":"debug 43","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":520,"y":160,"wires":[]}]

```

I'll let you finish the rest 😆

---

<div class="post-metadata">

**Author:** ![GRHMLGGT](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/grhmlggt/32/59269_2.png) [@GRHMLGGT](https://discourse.nodered.org/u/GRHMLGGT)\
**Post date:** [19 November 2022 14:32 UTC](https://discourse.nodered.org/t/split-hex-string-to-4-bytes/70874/3 "2022-11-19T14:32:59Z")

</div>

Thank you, I will try that.

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [19 November 2022 21:35 UTC](https://discourse.nodered.org/t/split-hex-string-to-4-bytes/70874/4 "2022-11-19T21:35:12Z")

</div>

The is a low code node built for this...

> **[node-red-contrib-buffer-parser](https://flows.nodered.org/node/node-red-contrib-buffer-parser)**
>
> Node-red nodes to convert values to and from buffer/array. Supports Big/Little Endian, BCD, byte swapping and much more

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [3 December 2022 21:35 UTC](https://discourse.nodered.org/t/split-hex-string-to-4-bytes/70874/5 "2022-12-03T21:35:29Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
