2016-06-08 12 views
-1

Diese Javascript regex
href=/m3/whaever zu href=http://abc.xyz.com/m3/whateverReferenz eine regex Gruppennummer, wenn der optionale Halterung vorhanden

const link = 'http://abc.xyz.com'; 
return html.replace(/([(href=)|(src=")|(src=)])(\/m3)/g, '$1' + link + '$5'); 

produziert

href=http://abc.xyz.com$5

zu konvertieren versucht Was habe ich falsch gemacht? Danke

+0

Was enthält die Variable '' html''? und was willst du genau bekommen? – Ismail

+0

@hamism ein Argument übergeben an die Funktion, wo dieser Code ist. –

+0

Lesen Sie über Zeichenklassen, um zu verstehen, was es ist. –

Antwort

0

[...] verwendet Zeichenklassen angeben, nicht zu gruppieren Alternativen.

[(href=)|(src=")|(src=)] 

entspricht einem einzigen Zeichen, das in den Klammern eines der Zeichen ist, das heißt, es zu

[cefhrs()="] 

Verwenden () zur Gruppe Alternativen äquivalent ist.

return html.replace(/(href=['"]?|src=['"]?)(\/m3)/g, '$1' + link + '$2'); 

Die ? macht die Anführungszeichen optional, brauchen Sie keine separaten Alternativen für sie.

0

Eckige Klammern sind für Zeichen, nicht ganze Zeichenfolgen. Versuchen Sie stattdessen:

const link = 'http://abc.xyz.com'; 
 
var html = '<a href="/m3/">test</a>'; 
 
console.log(html.replace(/(href=["']?|src=["']?)(\/m3)/g, '$1' + link + '$2'));

Verwandte Themen