Pergunta

Estou inteiramente nova para regex, e estou tentando usá-lo para coincidir com vales, a fim de mapeá-los para variáveis ??(javascript olhando para a saída em responceText gerada a partir de um script php).

No momento eu tenho este código:

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

Aqui está o (parte) da saída de seu olhar:

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

quando tudo corre, sua realmente olhando para uma linha como:

Combined_Make = GRAND JEEP CHEROKEE<br />

No momento eu estou recebendo de volta precisamente esta:

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

Claro que estou depois de apenas 'GRAND JEEP CHEROKEE' nesta instância :) - Eu também tenho certeza por que estou recebendo de volta que a produção precisa

!

Por favor, note que terá de atribuir múltiplos var $, cada um usando um começo diferente picar para o jogo!

Agradecemos antecipadamente por qualquer ajuda!

Foi útil?

Solução

Tente:

/Combined_Make =([^<]+)/

E então você vai querer acessar o primeiro grupo de captura ( [1] ):

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

Você pode querer teste que ele corresponda antes de tentar acessar o primeiro grupo de captura no entanto:

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

Outras dicas

String.match() sempre retorna um array, mesmo quando há apenas um único jogo (exceto quando não há jogo, em seguida, ele retorna NULL)

No caso de padrões que incluem subgrupos capturados, String.match() retornará sempre toda a adequação de padrões no índice 0, e, em seguida, os grupos correspondentes subsequentes em índices de 1 a N .

Aqui está uma forma clara de demonstrar que

"hello".match( /he(ll)(o)/ );
// yields ["hello", "ll", "o"]
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top