如何在符号@ 后自动超链接文本?

How do you automatically hyperlink text after the symbol @?

在我的网站上,有些文本可能包含对帐户的提及,例如@Melon 或@Banana。我怎样才能使用 JavaScript 自动 link 这些到他们各自的帐户(例如@Banana -> example.com/users/Banana)?我还想确保如果有人写了类似“@Banana's”的内容,它只会 link “@Banana”。如果这令人困惑,请发表评论。

谢谢!

你可以用正则表达式表达出来:

text.replace(/(^|\s)@([^\s]+)(\s|$)/g, "<a href=\"example.com/users/\">@</a>")

对于@Banana's 的情况,您需要定义哪些字符是 link 的一部分,哪些字符终止@statement。

此正则表达式假定 link 以 @ 开头并以空格结尾。

给你,使用正则表达式,但它基本上取决于用户的用户名的样子

const regex = /@([\w\d_-]*)(?:[^\.'<\bbr\b/*>\s])*/g;
const testCases = ["@Banana<br/>'s", "@Fruit", "@MOnkeys-12342<br>", "@International_Alien234"];

console.log(testCases.map(str => ({original: str, replace: str.replaceAll(regex, '<a href="example.com/users/">$&</a>')})));