求网址URL纯正则过滤规则

西門冠希 2017-04-16 12:09:02
((http[s]{0,1}|ftp)://[a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,4})(:\d+)?(/[a-zA-Z0-9\.\-~!@#$%^&*+?:_/=<>]*)?)|((www.)|[a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,4})(:\d+)?(/[a-zA-Z0-9\.\-~!@#$%^&*+?:_/=<>]*)?)


上面的可以实现,但是也把<img src="http://bbs.csdn.net/">中src的网址过滤掉了。

求一段能不过滤<img>标签中URL的过滤规则
...全文
328 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
文盲老顾 2017-04-17
  • 打赏
  • 举报
回复
我做采集的时候,会对所有不完整的url进行补全,然后获取完整地址 不如采集http://www.baidu.com,出现<img hidefocus="true" src="//www.baidu.com/img/bd_logo1.png" width="270" height="129">需要补足成 http://www.baidu.com/img/bd_logo1.png <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" /> 需要补足成 http://www.baidu.com/favicon.ico 诸如此类的东西,补足后可以获取相应的js文件、样式文件、图片等,如果不补足就很麻烦了 在补足成完整url后再根据你的业务逻辑去实现你要实现的内容就方便很多了
sanGuo_uu 2017-04-17
  • 打赏
  • 举报
回复
你到底是想去掉什么网址? a里面的网址么
天际的海浪 2017-04-16
  • 打赏
  • 举报
回复
可以先把<img>标签中的URL替换成不会被过虑格式。如http替换成ht*tp 然后用你那个正则表达式过虑。 最后再把之前替换的反替换回来。
西門冠希 2017-04-16
  • 打赏
  • 举报
回复
引用 6 楼 jslang 的回复:
[quote=引用 4 楼 music_vip_2009 的回复:] [quote=引用 1 楼 jslang 的回复:] 可以先把<img>标签中的URL替换成不会被过虑格式。如http替换成ht*tp 然后用你那个正则表达式过虑。 最后再把之前替换的反替换回来。
有没有那种,不等于格式,就例如我不想过滤很有某个字符串的写法。例如这样!=(baidu),那么包含baidu这个字符串的网址都不会被过滤掉[/quote] 可以用正则表达式的(?!xxxx)和(?<!xxxx) 不过(?<!xxxx)在客户端各个浏览器中都还不支持[/quote] 上面说的方法都试了,还是不行
天际的海浪 2017-04-16
  • 打赏
  • 举报
回复
引用 4 楼 music_vip_2009 的回复:
[quote=引用 1 楼 jslang 的回复:] 可以先把<img>标签中的URL替换成不会被过虑格式。如http替换成ht*tp 然后用你那个正则表达式过虑。 最后再把之前替换的反替换回来。
有没有那种,不等于格式,就例如我不想过滤很有某个字符串的写法。例如这样!=(baidu),那么包含baidu这个字符串的网址都不会被过滤掉[/quote] 可以用正则表达式的(?!xxxx)和(?<!xxxx) 不过(?<!xxxx)在客户端各个浏览器中都还不支持
  • 打赏
  • 举报
回复
引用 2 楼 music_vip_2009 的回复:
[quote=引用 1 楼 jslang 的回复:] 可以先把<img>标签中的URL替换成不会被过虑格式。如http替换成ht*tp 然后用你那个正则表达式过虑。 最后再把之前替换的反替换回来。
这样实现不了我那个功能,我是采集用,图片网址都是不固定的。[/quote]你采无非不就是想去掉链接,直接干掉a标签不就行了,还有框架之类的 如果用的火车头内容规矩就可以配置去掉哪些标签
西門冠希 2017-04-16
  • 打赏
  • 举报
回复
引用 1 楼 jslang 的回复:
可以先把<img>标签中的URL替换成不会被过虑格式。如http替换成ht*tp 然后用你那个正则表达式过虑。 最后再把之前替换的反替换回来。
有没有那种,不等于格式,就例如我不想过滤很有某个字符串的写法。例如这样!=(baidu),那么包含baidu这个字符串的网址都不会被过滤掉
天际的海浪 2017-04-16
  • 打赏
  • 举报
回复
图片网址不固定也没事,如把 <img src="http://bbs.csdn.net/"> 中的http后面加个* 变成 <img src="http*://bbs.csdn.net/"> 在你过虑之后再把*去掉。
西門冠希 2017-04-16
  • 打赏
  • 举报
回复
引用 1 楼 jslang 的回复:
可以先把<img>标签中的URL替换成不会被过虑格式。如http替换成ht*tp 然后用你那个正则表达式过虑。 最后再把之前替换的反替换回来。
这样实现不了我那个功能,我是采集用,图片网址都是不固定的。

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧