gpt4 book ai didi

jquery - 如何使用 jquery.linkify 插件链接 @usernames 和 #hashtags

转载 作者:行者123 更新时间:2023-12-01 08:22:51 26 4
gpt4 key购买 nike

我正在使用这个jquery插件:https://github.com/maranomynet/linkify/blob/master/1.0/jquery.linkify-1.0.js

通过这个 REGEX 插件,我尝试链接 @usernames 和 #hashtags...

  linkify.plugins = {
tUser: {
re: /(^|\s)@(\w+)/gi,
tmpl: '$1@<a href="http://domain.com/$2">$2</a>'
},
tHashtag: {
re: /(^|["'(]|&lt;|\s)(#.+?)((?:[:?]|\.+)?(?:\s|$)|&gt;|[)"',])/gi,
tmpl: function (match, pre, hashTag, post) {
return pre+'<a href="http://domain.com/search.php?q='+ encodeURIComponent(hashTag) +'">'+hashTag+'</a>'+post;
}
}
};

...但是我在奇怪的组合上遇到了一些麻烦:

(在粗体中应该链接但没有链接的内容)

#hash #hash) ( #hash )/#hash

@ user @user ) (@用户)/@用户

知道如何修复 REGEX 以匹配此变体吗?

谢谢!

最佳答案

我对 linkify 不太熟悉,但我会尝试一下。

第一个正则表达式 (@user) 的问题是它不匹配,因为它需要前导空格或换行符 - 这就是 (^|\s) 部分。至于 #hash 正则表达式,嗯......这似乎不必要地复杂。请尝试以下操作:

linkify.plugins = {
tUser: {
re: /(^|\s|[^\w\d])@(\w+)/gi,
tmpl: '$1@<a href="http://domain.com/$2">$2</a>'
},
tHashtag: {
re: /(^|\s|[^\w\d])#(\w+)/gi,
tmpl: function (match, pre, hashTag) {
return pre+'<a href="http://domain.com/search.php?q='+
encodeURIComponent(hashTag) +'">#'+hashTag+'</a>';
}
}
};

这将匹配 @user#hash,只要它们前面有换行符、空格或非单词、非数字字符(不是a-z、A-Z 或 0-9)。因此,您的括号不会造成干扰,但大多数电子邮件地址也不会被获取。

请注意,哈希符号也不会包含在链接哈希标签的搜索中。

关于jquery - 如何使用 jquery.linkify 插件链接 @usernames 和 #hashtags,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6206398/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com