Javascript从字符串中的符号创建链接

问题描述 投票:-1回答:2

这是我的字符串

var text = "Lorem ipsum dolor *https://www.google.com/* amet, *https://www.google.com/*";

我想创建这样的新的

var newText = "Lorem ipsum dolor <a href="https://www.google.com/">https://www.google.com/</a> amet, <a href="https://www.google.com/">https://www.google.com/</a>";

我的脚本不起作用。我做错了什么?

var newText = text.replace("*", "<a href=></a>");
javascript string replace
2个回答
1
投票

您正在用<a href=></a>替换星号的第一个出现

var text = "Lorem ipsum dolor *https://www.google.com/* amet, *https://www.google.com/*";
var newText = text.replace("*", "<a href=></a>");
console.log(newText);

要全部替换它们,您可以使用捕获组(将在$1中)然后使用replace

\*(.*?)\*

说明

  • 匹配asterix \*
  • 一个捕获组捕获任何字符非贪婪的(.*?)
  • 匹配asterix \*

var text = "Lorem ipsum dolor *https://www.google.com/* amet, *https://www.google.com/*";
var newText = text.replace(/\*(.*?)\*/g, "<a href=\"$1\">$1</a>");
console.log(newText)

1
投票

您可以尝试以下代码:

var text = "Lorem ipsum dolor *https://www.google.com/* amet, *https://www.google.com/*";
var arrtext=text.split('*');
var newtext='';

for(var i=0;i<arrtext.length;i++){

    if(arrtext[i].startsWith("http")){
         var link='<a href="'+arrtext[i]+'">'+arrtext[i]+'</a>';
         newtext=newtext+link;
    }else{
        newtext=newtext+arrtext[i];
    }

}
© www.soinside.com 2019 - 2024. All rights reserved.