javascript - 检查URL是否包含www或https ://for RegEx

标签 javascript jquery regex

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

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>';
});

最佳答案

看看这个,你必须进行全局匹配,你的正则表达式正在找到第一个匹配返回。您必须在正则表达式中匹配多个 /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>

关于javascript - 检查URL是否包含www或https ://for RegEx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58538941/

相关文章:

jquery - 每次更改选择框时如何获取更改的值?

regex - mod_rewrite 将 '_' 替换为 '-'

javascript - 如何允许在 UserControl 中仅选中四个复选框中的一个?

javascript - 将两个数组组合成json

javascript - Swiper - OpenCart - 背景全尺寸图像不起作用

java - 正则表达式替换 Java 文件中的所有字符串文字

node.js - Mongoose model.find 查询字符串

javascript - 在 Javascript 函数中组织 HTML

javascript - 使用 jQuery 动态向表添加行

javascript - 如何将下拉列表复制或插入到 html 表格列