为了账号安全,请及时绑定邮箱和手机立即绑定

检查 URL 是否包含 www 或 https:// 用于 RegEx

检查 URL 是否包含 www 或 https:// 用于 RegEx

12345678_0001 2021-12-02 15:23:18
我有一个场景,我想检查一个字符串是否包含一个 url 并使其可点击。我已经使用正则表达式将其转换为 url。但它只适用于http。我也想为 wwww 制作它。在我拥有的正则表达式中,我可以添加 htttp 或删除 http 以在 url 中包含 www。我已经在 JSfiddle 中粘贴了代码var convertTextToHTML = $("#systemNotificationMsg").text();var conversation = convertTextToHTML.replace(/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/, function(text, link) {   return '<a href="http://'+ link +'"> ' + link + ' </a>';});
查看完整描述

2 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

看看这个,你必须进行全局匹配,你的正则表达式正在寻找返回的第一个匹配。您必须/gi在正则表达式中匹配多个。


  var convertTextToHTML = $("#systemNotificationMsg").text();

var conversation = convertTextToHTML.replace(/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/gi, function(text, link) {

  console.log("Link in text: "+ link);

   return '<a href="http://'+ link +'"> ' + link + ' </a>';

});

$("#systemNotificationMsg").html(conversation);

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div id="systemNotificationMsg">

This message contains a link to www.google.com/hungerbox

and another to www.google.com so this is the example

</div>


查看完整回答
反对 回复 2021-12-02
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

这可以通过稍微简单的正则表达式来实现。

我在这里更新了 JSFiddle:

https://jsfiddle.net/Lxnfq95b/1/

正则表达式现在是:

/(www|https?)([^\s]+)/g

请注意,/g需要使其替换所有。

(www|https?)将匹配 www. 或 http(s) 链接。

([^\s]+) 将使正则表达式继续,直到遇到空格字符。


查看完整回答
反对 回复 2021-12-02
  • 2 回答
  • 0 关注
  • 293 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信