将一个用户输入的一段文字中的url替换成可以点击的link地址。例如:http://www.111cn.net可以替换成 [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地址。 测试一下:http://www.111cn.net紧接着中文,还有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|head|%)[sS]*?/(script|head|%)>/ig 匹配有嵌套的标签: <head> <head> |
这是因为[sS]*?里的非贪婪造成的。可以使用JavaScript正则里的反向引用来解决这个问题,如果起始标签匹配了head,那么结束标签也必须是head。最后的正则如下:
代码如下 | 复制代码 |
/<(script|head|%)[sS]*?/1>/ig |
时间: 2024-09-22 21:56:55