2017-02-11 3 views
0

in einem anderen Artikel auf Stackoverflow zurückzukehren verwenden, I diese CodezeileRegex JavaScript mehrere Nummern in ein Array

myString = 'hello112'; 
myNumber = myString.match(/\d+/)[0]; 

In diesem Fall fand die Variable 'myNumber' den Wert von 122.

aber wenn ich für den folgenden Fall verwenden .match, es scheitert:

myColor = 'rgb(210,255,105); 
myNumbers = myColor.match(/\d+/); 

The ‚myNumbers'variable ein Array ist, aber es ist Länge 1 und enthält nur‚210‘und die anderen zwei Zahlen.

Gibt es einen Weg in Javascript, dass ich etwas so erreichen kann?

input = 'rgb(210,255,105); 
output = [210,255,105]; 

Vielen Dank.

+0

die globale Modifikator 'g' verwenden:'/\ d +/g' – trincot

Antwort

3

Wenn nicht anders angegeben, stimmt match() nur mit der ersten Instanz überein, nicht mit allen. Sie benötigen das globale "g" Flag nach dem Muster.

match(/pattern/g); 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp

Randbemerkung: die globale Modifikator in Verbindung mit Untergruppenanpassung nicht verwenden können, aber das sollte Ihre Situation nicht beeinflussen.

+1

Thank you very much! Ich wünsche dir einen schönen Tag :) –

1

Sie müssen g - globale Flagge verwenden.

myColor = 'rgb(210,255,105)'; 
 
console.log(myColor.match(/\d+/g));

+0

Vielen Dank! Es funktionierte! Ich wünsche dir einen schönen Tag :) –

+0

@LanMai Ich wünsche dir einen schönen Tag. –

Verwandte Themen