Я новичок в Регулярных выражениях, и я часами ломал голову, чтобы решить эту проблему
let text = "My twitter handle is @emmy, I follow @jo and @pe"
Мне нужно заменить @emmy на <a href="https://twitter.com/emmy">@emmy</a>
, аналогично любой другой строке, начинающейся с @ вstring.
Вот кое-что, что я придумал из поиска в Интернете и чтения документов на MDN
function linkify(text) {
let regex = /(?:^|\W)@(\w+)(?!\w)/g;
return text.replace(regex, function(handle) {
return `<a href="https://twitter.com/${handle.slice(1)}>${handle}</a>`;
})
}
Проблема с этим решением состоит в том, что иногда оно пропускаетсянекоторый текст, например Ранее на этой неделе, @emmy показал лучшего ученика и посвятил Ранее на этой неделе,
Любой вклад врешение будет высоко ценится.