将字符串中的URL更改为可点击链接,同时更改其值
Changing URL in string to clickable link while changing its value
对于一个小的webapp,我使用JS将字符串中的url更改为可点击的url,同时将url更改为'tap here'。然而问题是,如果我保持URl不变,而不改变它为"点击这里",它都工作得很好。但如果我改变它,可点击的链接链接到一个错误页面:
未找到请求的URL/client/http://www.google.com'Target ='_blank'>在此服务器上找不到点击。
这是我使用的工作代码(不更改为'tap Here')
$('.discussion').ready(function(){
$('.discussion #messages p').each(function(){
var str = $(this).html();
var regex = /(https?:'/'/([-'w'.]+)+(:'d+)?('/(['w'/_'.]*('?'S+)?)?)?)/ig
var replaced_text = str.replace(regex, "<a href='$1' target='_blank'>$1</a>");
$(this).html(replaced_text);
});
});
这是我想工作的,但给出错误:
$('.discussion').ready(function(){
$('.discussion #messages p').each(function(){
var str = $(this).html();
var regex = /(https?:'/'/([-'w'.]+)+(:'d+)?('/(['w'/_'.]*('?'S+)?)?)?)/ig
var replaced_text = str.replace(regex, "<a href='$1' target='_blank'>tap here</a>");
$(this).html(replaced_text);
});
});
[EDIT]这是HTML
<ol class="discussion" scroll-bottom="replies">
<div ng-class="getClass($index)" ng-repeat="reply in replies track by $index">
<li ng-repeat="item in reply.text.replace('?','.').replace('!','.').split('. ') track by $index" class="fix-clutter">
<div class="avatar">
<img ng-src="{{reply.avatar}}">
</div>
<div id="messages" class="animated slideInUp">
<p class="animated fadeInUp">{{item}}</p>
</div>
</li>
</div>
</ol>
我复制并粘贴了您的代码:http://plnkr.co/edit/CK2vJdeIxtN1Bvt7Kce5?p=preview与以下HTML:
<div class="discussion">
<div id="messages">
<p>
http://stackoverflow.com/questions/32395188/changing
</p>
<p>
http://stackoverflow.com/questions/32395188/changing
</p>
</div>
</div>
在这个特定的场景中,一切都运行得很好。你能粘贴你的HTML吗?然而,正则表达式它不能正常工作。如果您在URI上添加"破折号",则regex无法获得完整的URI,并且在破折号上中断。
更新:我又查了一遍……这个问题90%是由正则表达式规则引起的。
另一种情况是,当你已经在你的html链接与"href标签"的代码如下:
<div class="discussion">
<div id="messages">
<p>
<a href="http://stackoverflow.com/questions/32395188/changing'>LINK</a>
</p>
</div>
</div>
相关文章:
- AngularJS:获取链接中没有哈希的查询字符串值
- 如何使用JQuery在HTML中创建包含字符串参数的引号的onclickjavascript链接
- 在任意字符串中创建所有URL的链接
- 从 python 渲染 HTML 在 web2py 中的字符串,生成@usename链接 python
- 更改链接 URL 中的路径名,同时保持查询字符串不变
- 将查询字符串添加到当前URL中嵌入的查询的锚链接
- 如何根据查询字符串值创建动态超链接
- 如何将字符串与变量连接起来/传递到链接
- jQuery:如何从链接中删除查询字符串
- 将fadeIn效果添加到图像容器超链接附加字符串中
- 是否可以使用HTML从任意字符串创建Jquery对象,例如var$newlink=$('<a>新链接
- 按匹配值对字符串进行分组(字符串是链接路径)
- 从链接内的数据绑定中获取字符串
- 来自 php 字符串的动态链接
- 如何从字符串解码链接
- 删除/隐藏链接后最后一次出现的字符串
- 阻止某些链接(包含某些字符串的 href)工作
- 角度,将字符串放在 ng-repeat 中的 url 中(用于 img 链接)
- 通过动态超链接单击事件的调用方法传递对象或字符串
- 基本JQuery:将一个链接字符串替换为另一个