Question

Je suis entièrement nouveau dans regex et j'essaie de l'utiliser pour faire correspondre les valeurs afin de les mapper à des variables (javascript recherchant la sortie dans responceText générée à partir d'un script php).

Pour l'instant, j'ai ce code:

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

Voici la (partie) de la sortie à regarder:

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

lorsque tout fonctionne, il s'agit en fait de regarder une ligne du type:

Combined_Make = GRAND JEEP CHEROKEE<br />

En ce moment, je reviens précisément:

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

Bien sûr, je suis après juste 'GRAND JEEP CHEROKEE' dans cet exemple :) - Je ne sais pas non plus pourquoi je récupère cette sortie précise!

Veuillez noter que je devrai assigner plusieurs var $, chacun utilisant un point de départ différent pour le match!

Merci d'avance pour toute aide!

Était-ce utile?

La solution

Essayez:

/Combined_Make =([^<]+)/

Ensuite, vous souhaiterez accéder au premier groupe de capture ( [1] ):

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

Vous voudrez peut-être vérifier sa correspondance avant d'essayer d'accéder au premier groupe de capture:

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

Autres conseils

String.match () retourne toujours un tableau, même s'il n'y a qu'une seule correspondance (sauf s'il n'y a pas de correspondance, alors il retourne NULL )

Dans le cas de modèles qui incluent des sous-groupes capturés, String.match () renverra toujours la correspondance de modèle complète à l'index 0, puis les groupes correspondants ultérieurs aux index 1 à N .

Voici un moyen clair de démontrer que

"hello".match( /he(ll)(o)/ );
// yields ["hello", "ll", "o"]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top