Le Prob: Je reçois une réponse AJAX JSON (ou texte brut dans les sauts de ligne). Chaque élément de la réponse doit être vérifié via RegEx pour savoir s'il correspond ou non au motif défini par l'utilisateur.JavaScript retourne RegExp.test() faux, même si elle doit retourner vrai
Exemple:
Ajax Réponse (-texte clair)
"Aldor
Aleph
Algae
Algo
Algol
Alma-0
Alphard
Altran"
utilisateur modèle:
/^Alg/ig.test(responseItem)
Résultats RegExp devrait ressembler à:
Aldor // false
Aleph // false
Algae // true
Algo // true
Algol // true
Alma-0 // false
Alphard // false
Altran // false
Mais chaque le temps je me différencie des résultats (par exemple, un peu). (/^alg/ig.test("Algo")
=>faux)
Mon code:
HTML
...
<form>
<input id="in" />
</form>
<div id="x">
Aldor
Aleph
Algae
Algo
Algol
Alma-0
Alphard
Altran
</div><button id="checker">check!</button>
...
JavaScript (jQuery 1.6.2)
$(function(){
var $checker = $('#checker');
$checker.click(function(ev){
var inputFieldVal = $.trim($('#in').val());
console.log(inputFieldVal); // Alg
var regExpPattern = '^'+inputFieldVal,
re = new RegExp(regExpPattern, 'igm');
onsole.log(re); // /^Al/gim
// Get text out of div#x
var text = $('#x').text();
// Trim and 'convert' to an array...
text = $.trim(text).split('\n');
console.log(text); // ["Aldor", "Aleph", "Algae", "Algo", "Algol", "Alma-0", "Alphard", "Altran"]
for (var index=0, upper=text.length;index<upper;++index) {
console.log(
re.test(text[index]),
text[index]
);
}
});
})
Console SORTIE:
/^Alg/ig
=> doit correspondre à chaque élément qui commence par Alg
false "Aldor"
false "Aleph"
true "Algae"
false "Algo" //Why ? O.o
true "Algol"
false "Alma-0"
false "Alphard"
false "Altran"
/^Al/ig
=> doit correspondre à chaque élément parce que chaque élément commence par
true "Aldor"
false "Aleph" //Why ? O.o
true "Algae"
false "Algo" //Why ? O.o
true "Algol"
false "Alma-0" //Why ? O.o
true "Alphard"
false "Altran" //Why ? O.o
Toutes les suggestions?
L'exécution de '/ ^alg/ig.test (" Algo ")' vous donne littéralement 'false'? – pimvdb
P.S. Le point de l'ensemble est que je ne veux pas seulement faire correspondre les éléments de la réponse, mais aussi être en mesure de les collecter. –
@pimvdb, no. '/ ^alg/ig.test (" Algo ")' renvoie vrai –