react-string-replace
react-string-replace copied to clipboard
Multiple replacements in a string are not working properly
I am using react-string-replace for translations. I have a string and I want to replace a couple of substitutes. The code looks like this:
ReactStringReplace(
'[link]This is my link[/link] available everywhere or [shortcode].',
/(\[link\].*\[\/link\])|(\[shortcode\])/g,
(match) => {
console.log('match', match);
}
)
From my understanding, my regular expression should match only the first link and the [shortcode]
. But the result in the console looks like this:
match [link]This is my link[/link]
match available everywhere or
match [shortcode]
I don't understand why is the middle match there. It doesn't match the regular expression.
It seems like the library only accepts one group on the passed regex.
Try it with /(\[link\].*\[\/link\]|\[shortcode\])/g
The output now should be:
match [link]This is my link[/link]
match [shortcode]
this totally took my off-balance, shouldn't this be part of the README.md page? :)
I can do the PR if you feel like this is relevant information for anyone who wants to use the library.