How to add Line Break after every 64 chars?

#1

I've a text file to which I want to add line break after every 64 chars. How can I add this using node-red?

0 Likes

#2

does the file already contain line breaks or is it one big string?
do spaces and other special characters count in the 64 characters?

I'd probably use a function node and first get the lenth of the text (using javascript 'length' method) and then have a loop read the text using the javascript 'substring' method to grab 64 characters at a time, add a 'new line' character and stick it into a new string.

Once the loop had processed the input file, I'd exit the loop and write the new string to a new file.

0 Likes

#3

It is one very long string. Actually it is a base64 certificate in 1 line. I have to add the line break after every 64 characters to make the certificate a valid file.

0 Likes

#4

There may be a way to use a regex expression to do it all in one go, but not being a regex expert (it hurts my head) I'd go with the function.

0 Likes

#5

Assuming the string is in msg.payload then the reg ex would be:

msg.payload = msg.payload.replace(/(.{64})/g,'$1\n');
return msg;
1 Like

#6

Awesome! Works like charm! Thanks @knolleary and @zenofmud

0 Likes

#7

See I knew there would be a simple regex way of doing it (but it still hurts my brain :grin:)

1 Like

#8

Replace also works using a change node and JSONata

$replace(payload, /(.{64})/, '$1\n')

But the magic comes from @knolleary :wink:

1 Like