javascript regex para combinar caracteres entre duas seqüências
-
05-07-2019 - |
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!
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"]