2010-08-05 14 views
13

Ich habe diese Saite:Make-Array von regex

{example1}{example2}{example3} 

Dies ist der reguläre Ausdruck diese {anything in it} zu finden:

/\{.*?\}/g 

Nun ich möchte wissen, wie sie in einem Array setzen, so Ich kann eine for in Aussage machen.

Ich möchte ein Array so etwas wie array("{example1}","{example2}","{example3}");?

+2

Wenn Sie ein echtes Array haben, wäre es viel besser, wenn Sie eine einfache "for" -Schleife anstelle von 'for ... in' verwenden, was Ihnen mehr bietet, als Sie erwartet haben: alle Erweiterungen von Der Prototyp von 'Array' wird aufgelistet, ebenso wie die Elemente im Array. –

+0

Sie sollten Arrays nicht mit 'For-In' iterieren. Verwenden Sie vorzugsweise eine "for" -Schleife im C-Stil. – strager

Antwort

10
var matches = '{example1}{example2}{example3}'.match(/\{.*?\}/g); 
// ['{example1}', '{example2}', '{example3}'] 

See it here.

Sie sollten auch eine for Schleife verwenden, um das Array zu durchlaufen. for in kann Nebenwirkungen haben, wie zum Beispiel das Sammeln von mehr Dingen, um die Prototypkette zu durchlaufen. Sie können hasOwnProperty() verwenden, aber eine for Schleife ist nur so viel einfacher.

Für die Leistung können Sie auch die length-Eigenschaft zwischenspeichern, bevor Sie sie in den for-Zustand aufnehmen.

+0

schön, das ist ein Beispiel, er kann lernen von :) –

+0

hm es sagt "Sie zuletzt über diese Antwort vor 9 Stunden abgestimmt Ihre Stimme ist jetzt gesperrt, es sei denn diese Antwort ist bearbeitet" –