如果发送的消息具有链接,如何在消息中创建链接

1u4esq0p  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(350)

我的要求是,如果我收到消息,如果消息中有任何超链接(如www.gmail.com等),那么它必须显示为链接,如带有下划线和蓝色的锚标记链接(如标记上的链接)
我的javascript代码是.js

//var postMessage = MessageGet($("#PrivateConversation #ConversationTextarea"));
    var urlRegex = /(((https?:\/\/)|(www\.))[^\s]+)/g;
    var detectURL = postmsg.match(urlRegex);
    //console.log(detectURL);

    var resultPost = '<a href= "' + detectURL + '" role="link" > ' + postmsg + '</a>';

    console.log(postmsg);

从上面我得到的文字,只有当它有超链接,也显示在文本格式

cgfeq70w

cgfeq70w1#

我嵌入了一个代码片段,它应该可以解决您的问题:您的代码是正确的,但在控制台日志和用正确的内容替换链接时出现了一些问题。

function transformHyperlinks() {
const postmsg = document.getElementById("start").value;

const urlRegex = /(((https?:\/\/)|(www\.))[^\s]+)/g;
const detectURL = postmsg.match(urlRegex);

let resultPost = postmsg

detectURL.forEach(url => {
  resultPost = resultPost.replace(url, '<a href= "' + url + '" role="link" > ' + url.trim() + '</a>')
}) 

document.getElementById("end").innerHTML = resultPost;
}
<h2>Old text</h2>
<textarea id="start">test https://facebook.com https://www.google.com test</textarea>

<button onclick=transformHyperlinks()>Transform Hyperlinks</button>

<h2>New text</h2>
<div id="end"></div>

相关问题