react-string-replace
react-string-replace copied to clipboard
Natural index numbers on callback function
Hi there 👋
I have a situation where I'd like to replace the matched regex with my own array of nodes respectively. It would be great receiving natural index numbers 0, 1, 2
on callback instead of odd ones.
const nodes: React.ReactNodeArray
// [
// <span key='something'>label</span>,
// <h1 key='otherthing'>heading</h1>
// ]
reactStringReplace('These are my {} and {} and {} values.', /({})/g, (match, i) => {
// odd index numbers
return nodes[(i - 1) / 2]
})
Hm, that would prob be more intuitive since no one needs to know how the iteration is taking place from the outside. Candidate for a v2 since that could potentially break functionality people are using, even if it wasn't intended functionality.
In the meantime for anyone else needing this functionality I'd suggest the more verbose, less elegant counter approach.
let count = -1;
reactStringReplace('These are my {} and {} and {} values.', /({})/g, (match, _) => {
count++;
return nodes[count]
})
I suggest adding a note to README.md
about the returned index values for now. In my opinion, the currently returned values are quite unexpected.