首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查网址是否包含www或RegEx的https://

问检查网址是否包含www或RegEx的https://
EN

Stack Overflow用户
提问于 2019-10-24 18:04:46
回答 2查看 2K关注 0票数 0

我有一个场景,我想检查一个字符串是否包含一个url,并将其设置为可点击。我使用正则表达式将其转换为url。但它只适用于http。我也想为wwww制作它。在我拥有的regex中,我可以添加htttp或删除http,以便在url中包含www。我已经将代码粘贴到JSfiddle中

JSFiddle

代码语言:javascript
复制
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>';
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-24 18:29:43

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

代码语言:javascript
复制
	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);
代码语言:javascript
复制
<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>

​

票数 2
EN

Stack Overflow用户

发布于 2019-10-24 18:13:13

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

我已经在这里更新了JSFiddle:

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

正则表达式现在是:

代码语言:javascript
复制
/(www|https?)([^\s]+)/g

请注意,需要/g才能将其全部替换。

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58538941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档