Multiple matches on same string
Hi there, when using this twice on the same string what is happens is as follows, the first string matches and an array containing the react component returned from the callback fucktion is returned, and than in the second replace, it skips the symbol that was returned from the first run because it is not a string... I think the solution would be to use flattenDeep instead of flatten, and clarify that callback functions should return an array instead of a component.
I could overcome this problem with recursion:
function myReplace(string: string | React.ReactNodeArray): React.ReactNodeArray {
let result: React.ReactNodeArray;
result = reactStringReplace(string, /123/, (match, i) => (
<span key={match + i}>{myReplace(match)}</span>
));
result = reactStringReplace(result, /abc/, (match, i) => (
<span key={match + i}>{myReplace(match)}</span>
));
// ....
return result;
}
yeah this regex thing doesn't work at all :/ (https?://|www.)[\w-.]+.[\w-.]+(/([\S]+)?)? https://regexr.com/ www.google.com
then I get www for this library. Should be www.google.com
Update: this regex works /(https?://(?:www.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9].[^\s]{2,}|www.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9].[^\s]{2,}|https?://(?:www.|(?!www))[a-zA-Z0-9]+.[^\s]{2,}|www.[a-zA-Z0-9]+.[^\s]{2,})/g just test with .split()