2017-12-28 6 views
-1

hier ist meine ZeichenfolgeJavascript erstellen Link von Symbol in String

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

Ich mag würde neue erstellen, wie diese

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>"; 

Mein Skript nicht funktioniert. Was mache ich falsch?

var newText = text.replace("*", "<a href=></a>"); 
+1

über reguläre Ausdrücke lernen. – SLaks

+0

Bitte lesen Sie das folgende: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace –

+0

https://stackoverflow.com/questions/161738/what-is- the-best-regular-expression-to-check-wenn-eine-string-is-a-valid-url – epascarello

Antwort

1

Sie ersetzen die erste Auftreten des asterix mit <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);

sie alle zu ersetzen, können Sie eine Erfassungsgruppe verwenden (was in $1 sein wird) und dann verwenden Sie replace:

\*(.*?)\*

Erklärung

  • Spiel ein asterix \*
  • Eine Erfassungsgruppe, die
  • Spiel ein 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)
alle Zeichen nicht gierig (.*?) einfängt

+0

hoffentlich gibt es keine links innerhalb der string zu starten .... In dem Beispiel wäre es in Ordnung, aber wenn Da ist ein Bild oder etwas in dem echten Zeug, das es zerbrechen wird. – epascarello

+0

var newText = text.replace (/\*(.*?)\*/ g, "$1"); – RogerC

+0

Dadurch wird die Link-URL zum href-Parameter des A-Tags hinzugefügt. – RogerC

1

Sie könnten den Code unten versuchen:

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]; 
    } 

}