2016-12-01 7 views
-2

Lassen Sie uns sagen, ich habe eine ZeichenfolgeExtraktgehalt in geschweiften Klammern mit Hilfe von Javascript regex

let str = 'foo ${bar}baz ${foobar}' 

Ich möchte alle Elemente zwischen dem ${ und } extrahieren.
Also würde ich ['bar', 'foobar'], idealerweise mit String 's match() Funktion in Javascript zurückkehren wollen. Irgendwelche brillanten Regex-Zauberer da draußen, die bereit sind, eine Hand zu reichen?

Antwort

1

Ich würde so etwas tun, wenn eine Regex keine wirkliche Einschränkung ist:

let str = 'foo ${bar}baz ${foobar}' 

console.log(str.split("${").slice(1).map(item => item.split("}")[0])) 
// Outputs : ["bar", "foobar"] 

Ansonsten ist hier eine Regex, die Ihren Bedarf passen könnte: \${(.*?)}.

+0

Danke, überschätzte dies. – cgsd

+0

Gern geschehen, froh das hat geholfen! –

0
var str = 'foo ${bar}baz ${foobar}', 
    exp = /\$\{(\w*)\}/g, 
    matched, 
    matches = []; 

while ((matched = exp.exec(str)) !== null) { 
    matches.push(matched[1]); 
} 

console.log(matches); 
// Outputs: ["bar", "foobar"] 
+0

Während dies möglicherweise die richtige Antwort ist, sieht es nicht überzeugend ohne Kommentare und nur Code aus. Bitte überlegen Sie, ob Sie einen Kommentar hinzufügen, um eine bessere Chance zu haben, akzeptiert zu werden. –

Verwandte Themen