如何使用Jquery表达式用特定索引中的超链接替换单词?

发布于 2024-10-14 12:52:34 字数 713 浏览 4 评论 0原文

我使用下面的函数用链接替换“#”标签,

$('.content').each(function(index) {
     $(this).html($(this).html().replace(/(#\w+)/g, "<a target='_self' class='msg_links' href='http://test.com/search/q=$1'>$1</a>"));
 }); 

假设字符串是这样的:

"Hello how are you #frineds, whats going on?"

它像这样重新运行:

"Hello how are you <a href='http://test.com/search/q=#frineds'>#frineds</a>, whats going on?"

而不是我想要这样

"Hello how are you  <a href='http://test.com/search/q=%23frineds'>#frineds</a>, whats going on? "

我该怎么做使用Jquery?

-谢谢 阿布舍克

I replace "#" tag with link by using below function,

$('.content').each(function(index) {
     $(this).html($(this).html().replace(/(#\w+)/g, "<a target='_self' class='msg_links' href='http://test.com/search/q=$1'>$1</a>"));
 }); 

Suppose string is like this :

"Hello how are you #frineds, whats going on?"

It retruns like this :

"Hello how are you <a href='http://test.com/search/q=#frineds'>#frineds</a>, whats going on?"

Instead of I want to like this

"Hello how are you  <a href='http://test.com/search/q=%23frineds'>#frineds</a>, whats going on? "

How I can do this using Jquery?

-Thanks
Abhishek

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

糖果控 2024-10-21 12:52:34

您需要在匹配的字符串上使用 encodeURIComponent

 $(this).html($(this).html().replace(/(#\w+)/g, function($0, $1) {
     return "<a target='_self' class='msg_links' href='http://test.com/search/q=" + encodeURIComponent($1) + "'>" + $1 + "</a>");
 });

或者从匹配中排除 # 并使 %23 硬编码:

 $(this).html($(this).html().replace(/#(\w+)/g, "<a target='_self' class='msg_links' href='http://test.com/search/q=%23$1'>$1</a>"));

You either need to use encodeURIComponent on the matched string:

 $(this).html($(this).html().replace(/(#\w+)/g, function($0, $1) {
     return "<a target='_self' class='msg_links' href='http://test.com/search/q=" + encodeURIComponent($1) + "'>" + $1 + "</a>");
 });

Or exclude the # from the match and make the %23 hard coded:

 $(this).html($(this).html().replace(/#(\w+)/g, "<a target='_self' class='msg_links' href='http://test.com/search/q=%23$1'>$1</a>"));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文