A-A+

替换文本中的URL为链接与替换指定内容js代码

2016年01月20日 web前端设计 暂无评论 阅读 8 views 次

下面来介绍关于替换文本中的URL为链接,有需要的同学可参考一下,将一个用户输入的一段文字中的url替换成可以点击的link地址,例如,https://www.xiariboke.com 可以替换成 [url]http://www.cctv.com[/url]
或<a href="http://www.cctv.com">http://www. </a>.

这个正则的关键就在于匹配链接,匹配之后,在两边加上a标签和属性不是问题。

/http://[w-]*(.[w-]*)+/ig 首先匹配http://。

[w-]*是可能的www和bbs等。

.[w-]*匹配.xxx形式,至少有一个。

测试代码如下:

<script type="text/javascript">
function replaceReg(reg,str){
return str.replace(reg,function(m){return '<a href="'+m+'">'+m+'</a>';})
}
var reg = /http://[w-]*(.[w-]*)+/ig;
var str = '将一个用户输入的一段文字中的url替换成可以点击的link地址。

测试一下:https://www.xiariboke.com紧接着中文,还有http://bbs.

is very good!http://!最后在看看带.cn的:http://www.sina.com.cn呵呵。';
document.write(replaceReg(reg,str)+'<br />');
</script>

从HTML代码段删除指定标签极其内容

来源:关于正则的问题

在一段代码中去除<script ...... /script>, <head>...</head>,<%.....%>等代码块,正则代码如下:

/<(script|meta|%)[sS]*?/(script|meta|%)>/ 试了一下,匹配如下文本正常.

<script type="text/javascript">
我是要被删除的脚本
</script>
哎。就剩下我了,但是,如果使用类似的正则,代码如下:

/<(script|head|%)[sS]*?/(script|head|%)>/ig 匹配有嵌套的标签:
<head>
<script type="text/javascript">
我是要被删除的脚本
</script>
</head>
哎,就剩下我了,实际匹配的内容是:
<head>
<script type="text/javascript">
我是要被删除的脚本
</script>

这是因为[sS]*?里的非贪婪造成的,可以使用JavaScript正则里的反向引用来解决这个问题,如果起始标签匹配了head,那么结束标签也必须是head,最后的正则如下.

/<(script|head|%)[sS]*?/1>/ig

标签:

给我留言