05-16-2018 01:26 PM
Hi,
I would like to escape special HTML characters of a string. e.g. <>,',",@ etc…
I know i can use ‘replace’ method to replace all of those characters one by one with the encoded ones, but is there any better way to do this in a mapper with expression?
BTW, I tried to use replace like this
.replace(/[&<>"'` !@$%()=+{}]/g, function(x){ return ‘&#’ + x.charCodeAt(0) + ‘;’})
but the mapper keeps throwing me errors as it seems the second parameter of the replace method cannot be a function?
Thanks
Solved! Go to Solution.
05-17-2018 10:39 AM
The second parameter can be a function, but there’s a bug caused by the regex not having escapes for the square brackets. Del’s version of the regex works:
However, the second parameter is going to replace with the char code for ‘$’ and not the character that matched the regex. The second parameter needs to be an arrow function, like so:
.replace(/([&<>"'` !@$%()=+{}\[\]])/g, x => ‘&#’ + x.charCodeAt(0) + ‘;’)
05-17-2018 11:16 AM
@tstack, I’m not sure the appropriate category, but to avoid hijacking this thread, (in a few minutes) I’ll start a post of ideas in the Enhancement Requests category.