Попробуйте эту библиотеку, это именно вам нужно: https://www.npmjs.com/package/react-process-string
Пример оттуда:
const processString = require('react-process-string');
let config = [{
regex: /(http|https):\/\/(\S+)\.([a-z]{2,}?)(.*?)(|\,|$|\.)/gim,
fn: (key, result) => <span key={key}>
<a target="_blank" href={`${result[1]}://${result[2]}.${result[3]}${result[4]}`}>{result[2]}.{result[3]}{result[4]}</a>{result[5]}
</span>
}, {
regex: /(\S+)\.([a-z]{2,}?)(.*?)(|\,|$|\.)/gim,
fn: (key, result) => <span key={key}>
<a target="_blank" href={`http://${result[1]}.${result[2]}${result[3]}`}>{result[1]}.{result[2]}{result[3]}</a>{result[4]}
</span>
}];
let stringWithLinks = "Watch this on youtube.com";
let processed = processString(config)(stringWithLinks);
return (
<div>Hello world! {processed}</div>
);
Это заменит все ссылки с или без "HTTP: //" протокол , Если вы хотите заменить только ссылки на протокол, удалите второй объект из массива config.
Как вы это сделали бы в JavaScript? –
Это только спасло меня, и все вы, искатели, которые оставили комментарий @ HenrikAndersson, по-видимому, никогда не использовали React. – Mathletics
Youre goober. –