Frage

Ich bin völlig neu zu Regex, und ich versuche, es zu benutzen vales anzupassen, um sie auf Variablen abbilden (JavaScript am Ausgang in responceText suchen aus einem PHP-Skript generiert).

Im Moment habe ich diesen Code ein:

if (xmlhttp.readyState==4)
  {
  document.getElementById("test").innerHTML=xmlhttp.responseText;
  cmake = xmlhttp.responseText.match(/Combined_Make =(.*?)</);
  }

Hier ist der (Teil) des Ausgangs seines Blick auf:

echo "<span class=\"note\">";
echo "Test Output\n";
echo " Combined_Make = $model\n";
echo " Combined_Model = $marque\n";

, wenn alles läuft, sein eigentlich auf der Suche auf einer Linie wie:

Combined_Make = GRAND JEEP CHEROKEE<br />

Im Moment bin ich immer genau dies zurück:

'Combined_Make = GRAND JEEP CHEROKEE>, GRAND JEEP CHEROKEE'

Natürlich bin ich nach nur ‚GRAND JEEP CHEROKEE‘ in diesem Fall :) - Ich bin auch nicht sicher, warum ich immer wieder, dass eine präzise Ausgabe

Bitte beachten Sie, dass ich mehrere var $ zuweisen müssen, die jeweils einen unterschiedlichen Start Stachel für das Spiel mit!

Vielen Dank im Voraus für jede Hilfe!

War es hilfreich?

Lösung

Versuchen:

/Combined_Make =([^<]+)/

Und dann werden Sie die erste Capture-Gruppe zugreifen möchten ( [1] ):

cmake = xmlhttp.responseText.match(/Combined_Make =([^<]+)/)[1];

Sie können testen wollen, dass es passt, bevor die erste Capture-Gruppe zuzugreifen versuchen, aber:

var match = xmlhttp.responseText.match(/Combined_Make =([^<]+)/);
cmake = match && match[1];

Andere Tipps

String.match() gibt immer einen Array, auch wenn es nur ein einziges Spiel (außer wenn es keine Übereinstimmung gibt, dann NULL es gibt)

Im Fall von Mustern, die erfassten Untergruppen umfassen, String.match() wird immer die gesamte Rückmusterübereinstimmung bei Index 0, und dann nachfolgende Indizes passende Gruppen bei 1 bis N .

Hier ist eine klare Art und Weise, dass

zu demonstrieren
"hello".match( /he(ll)(o)/ );
// yields ["hello", "ll", "o"]
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top