i'm using node-red-node-email to read email.
What I want is to extract a URL from the email body, and send only that onwards, how can I do this?
i'm using node-red-node-email to read email.
What I want is to extract a URL from the email body, and send only that onwards, how can I do this?
Unless the URL is in the exact same place each time, probably best to use a regular expression.
E.g...
"Regular expression to find URLs within a string - Stack Overflow" https://stackoverflow.com/questions/6038061/regular-expression-to-find-urls-within-a-string
tried regex but it doesn't work
Sure it does. Post a sample string containing a URL.
I tried a few examples from your link, they either still allow the whole message through or nothing at all. the URL format is always: https://example.com/page/
it never has www and sometimes has an underscore within /page/
.
I copied one of the regex
from that page i linked to & it worked...
msg.payload = msg.payload.match(/(?:(?:https?|ftp|file):\/\/|www\.|ftp\.)(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.]*\)|[-A-Z0-9+&@#\/%=~_|$?!:,.])*(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.]*\)|[A-Z0-9+&@#\/%=~_|$])/igm);
return msg;
Thanks, that works.
I was using the switch node....
Out of curiosity, how would I do it if it was in the same place every time?
You could use JS string functions like indexOf
and/or split
to break up the string and find the URL. Just stick with the regex if it works
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.