2017-12-30 54 views
-2

Ich habe diesen JavaScript-Code:Abrufen von Text zwischen zwei Strings in JS Regex

var str = "#foo#"; 
var regex = /(?<=#)(.*)(?=#)/ig; 
var result = str.replace(regex,"<a href='https://www.google.com/search?q=$1'>$1</a>"); 
alert(result); 

ich den Text will zwischen von # umgab in einen Link zu einer Google-Suche zu machen. Ich möchte den Text zwischen # bekommen, nicht ändern. Gibt es eine Möglichkeit, dies zu tun?

Antwort

0

Javascript nicht unterstützt Lookbehinds (?<=)

Sie # passen könnten, zu erfassen, während nicht # in einer Gruppe (die Sie mit $1 in der ersetzen beziehen können) und dann erneut # entsprechen:

#([^#]+)#

Erklärung

  • Spiel #
  • Eine Erfassungsgruppe (
  • Spiel während nicht # ein oder mehrere Male [^#]+
  • Schließen Erfassungsgruppe )
  • Spiel #

var str = "#foo#"; 
 
var regex = /#([^#]+)#/g; 
 
var result = str.replace(regex,"<a href='https://www.google.com/search?q=$1'>$1</a>"); 
 
    console.log(result);

Verwandte Themen