react-process-string
react-process-string copied to clipboard
Replace react-router-dom in string
In your example code, i want to replace user link with react-router-dom.
let users = ourStore.users;
let stringWithUsername = "Hello @efog, how do you feel today?";
let processed = processString([{
regex: /\@([a-z0-9_\-]+?)( |\,|$|\.)/gim, //regex to match a username
fn: (key, result) => {
let username = result[1];
let foundUsers = users.filter(user => user.username === username);
if (!foundUsers.length)
return result[0]; //@username
//return this =>
return <Link to={{
pathname: '/user/' + username,
}}> @{username} </Link>;
// return <a key={key} href={`/user/${username}`}>@{username}</a>;
}
}]);
How can do this ?
@Pedroxam Nothing works for me except this package https://www.npmjs.com/package/regexify-string
regexifyString({
pattern: /\[.*?\]/gim,
decorator: (match, index) => {
return (
<Link
to={SOME_ROUTE}
onClick={onClick}
>
{match}
</Link>
);
},
input: 'Some text with [link]',
});
SOME_ROUTE
Thanks, i will check