2016-05-07 12 views
-3
str="abc { return false;}" 

Ich möchte nur, das Wort „falsch“ aus dem String „str“, wie folgt,Wie Kette Spiel und ersetzen regulären Ausdruck in JavaScript

str.match(/return \w+;/g).replace(/return/,"") 

Es ist falsch! Wie kann ich diesen Ausdruck korrigieren, um das gewünschte Wort zu erhalten?

+0

Ich nehme an, möchten Sie entfernen (ersetzen) den ganzen Inhalt in geschweiften Klammern '{' '}', oder? – RomanPerekhrest

+0

Ich möchte "falsch" in den geschweiften Klammern bekommen –

+0

dann was ist '.replace (/ return /," ")' für? Es wird das Wort "return" aus der Zeichenfolge entfernen – RomanPerekhrest

Antwort

0

Wenn das Ziel nur ist die „Rückgabewert“ aus der Zeichenfolge (Funktion Text-Definition) zu extrahieren - es kann ohne Verkettung durch eine Operation erreicht werden:

var str = "abc { return true;}"; 
console.log(str.match(/return (\w+?);/)[1]); // outputs "true" 
0

str.match wird ein Array mit übereinstimmenden Elementen, nicht eine einzige Zeichenfolge zurückgeben. Deshalb schlägt .replace fehl. Eine schnelle Lösung wäre [0] hinzuzufügen wie so auf dem ersten Array-Elemente zu ersetzen: str.match(/return \w+;/g)[0].replace(/return/,"")

Doch diese false; zurückkehren wird (nicht genau das, was Sie wollen), und es wird fehlschlagen, wenn es überhaupt keine Übereinstimmung ist: „Nicht abgefangene Typeerror : Kann lesen Eigenschaft nicht ‚0‘ von null“

Eine bessere Möglichkeit, Einfanggruppen mit geklam- mert zu verwenden wäre:

var str= "abc { return false;}" 
var re = /return (\w+);/g 
var results = re.exec(str); 

das Ergebnis ist wieder ein Array mit dem ersten Element das komplette Spiel zu sein, die zweite Element ist die erste Erfassungsgruppe: ["return false;", "false", index: 6, input: "abc { return false;}"]

Verwandte Themen