-
Notifications
You must be signed in to change notification settings - Fork 54
Open
Description
I'm having trouble using reactStringReplace
to format text with bold/italic tags. I have it set up as follows:
var text1 = "[b]Testing bold [i]and italic[/i] tags[/b]"
var text2 = "[b]Testing bold [i]and italic tags[/b][/i]"
let replaced = reactStringReplace(text1, /\[b\]([\s\S]+)\[\/b\]/g, (match, i) => {
return <b key={i}>{match}</b>
})
replaced = reactStringReplace(replaced, /\[i\]([\s\S]+)\[\/i\]/g, (match, i) => {
return <i key={i}>{match}</i>
})
// result (html)
<b>Testing [i]bold and italic[/i] tags</b>
<b>Testing [i]bold and italic tags</b>[/i]
I'm not sure if this is a problem with reactStringReplace
, with the regex I'm using, or something else. If I apply the italic replace first, I get italic tags where I'd expect them to be, but the [b] tags remain unchanged. Is this use case possible using reactStringReplace
or do I need to use dangerouslySetInnerHtml
?
Bonus: is reactStringReplace
capable of handling unbalanced tags, or improperly formatted tags as in text2
or should I be doing some pre-processing to ensure the strings are properly balanced and formatted?
evanjmg and garyb01
Metadata
Metadata
Assignees
Labels
No labels