Pregunta

Soy completamente nuevo en las expresiones regulares, y estoy tratando de usarlo para hacer coincidir los valores con el fin de asignarlos a las variables (javascript mirando la salida en el texto de respuesta generado desde un script php).

En este momento tengo este código:

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

Aquí está la (parte) de la salida que está viendo:

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

cuando todo se ejecuta, en realidad está mirando una línea como:

Combined_Make = GRAND JEEP CHEROKEE<br />

En este momento estoy volviendo precisamente esto:

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

Por supuesto, estoy detrás de 'GRAND JEEP CHEROKEE' en este caso :) - ¡Tampoco estoy seguro de por qué estoy recuperando esa salida precisa!

¡Tenga en cuenta que tendré que asignar varias var $, cada una con una cadena de inicio diferente para el partido!

¡Gracias de antemano por cualquier ayuda!

¿Fue útil?

Solución

Prueba:

/Combined_Make =([^<]+)/

Y luego querrás acceder al primer grupo de captura ( [1] ):

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

Es posible que desee probar que coincida antes de intentar acceder al primer grupo de captura:

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

Otros consejos

String.match () siempre devuelve una matriz, incluso cuando solo hay una coincidencia (excepto cuando no hay ninguna coincidencia, luego devuelve NULL )

En el caso de patrones que incluyen subgrupos capturados, String.match () siempre devolverá la coincidencia del patrón completo en el índice 0, y luego los grupos correspondientes en los índices 1 a N .

Aquí hay una manera clara de demostrar que

"hello".match( /he(ll)(o)/ );
// yields ["hello", "ll", "o"]
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top