l3u*_*fly 5 html javascript regex jquery
我有一段文本可能包含一些纯文本链接,或一些实际链接的链接.
例如:
Posting a link: http://test.com, posting an image <img src="http://test.com/2.jpg" />. Posting an actual A tag: <a href="http://test.com/test.html">http://test.com/test.html</a>
Run Code Online (Sandbox Code Playgroud)
我需要从这段文本中删除未格式化的链接.所以任何正则表达式将匹配第一种情况,但不是第二种或第三种情况,因为它们已经是格式良好的链接.
我已经设法用这个正则表达式删除了所有链接:((http:|https:)\/\/[a-zA-Z0-9&#=.\/\-?_]+)但是,我仍然无法区分这些情况.
这需要在javascript中,所以我不认为允许负面的lookbehind.
任何帮助,将不胜感激.
编辑:我正在尝试将未编辑的链接包装在一个标签中.
您可以使用此正则表达式来获取标签之外的 URL:
(?![^<]*>|[^<>]*<\/)((http:|https:)\/\/[a-zA-Z0-9&#=.\/\-?_]+)
Run Code Online (Sandbox Code Playgroud)
看演示
我们也可以通过一个i选项将其缩短一点:
(?![^<]*>|[^<>]*<\/)((https?:)\/\/[a-z0-9&#=.\/\-?_]+)
Run Code Online (Sandbox Code Playgroud)
示例代码:
(?![^<]*>|[^<>]*<\/)((http:|https:)\/\/[a-zA-Z0-9&#=.\/\-?_]+)
Run Code Online (Sandbox Code Playgroud)
(?![^<]*>|[^<>]*<\/)((https?:)\/\/[a-z0-9&#=.\/\-?_]+)
Run Code Online (Sandbox Code Playgroud)
更新:
要允许在特定标签内捕获,您可以像这样将它们列入白名单:
var re = /(?![^<]*>|[^<>]*<\/(?!(?:p|pre)>))((https?:)\/\/[a-z0-9&#=.\/\-?_]+)/gi;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1576 次 |
| 最近记录: |