Probleme de RegExp

Le
xlaxague
Bonjour.

Voici une fonction :

var jsUtilities =
{
isHostName : function(pHostName)
{
if (pHostName == null || pHostName.length == 0)
{
return false;
}

if (pHostName.indexOf('--') != -1 || pHostName.indexOf('__') !=
-1)
{
return false;
}

var regExp = new RegExp('^[a-z]([a-z]|[0-9]|[_\-])*$', 'ig');

alert('isHostName: ' + regExp.test(pHostName)); // retourne
TRUE;
alert('isHostName: ' + regExp.test(pHostName)); // retourne
FALSE;

return regExp.test(pHostName); // retourne
TRUE;
}
}

Si j'exécute le .test() plusieurs fois d'affilée, j'obtiens true,
false,
true, false, etc

Est-ce-que qq'un saurait pourquoi un tel comportement ?
Merci.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Mickaël Wolff
Le #757143

Si j'exécute le .test() plusieurs fois d'affilée, j'obtiens true,
false,
true, false, etc...

Est-ce-que qq'un saurait pourquoi un tel comportement ?
Merci.



Dans la console de Firefox, j'exécute la séquence suivant :

var re = new RegExp('^[a-z]([a-z]|[0-9]|[_\-])*$', 'ig'); while(1) {
if(confirm('Arrêter ? ('+ re.test('http://lupusmic.org') +')')) break ; } ;

Et test est toujours négatif.

Su quel navigateur testes-tu ?
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org

Delf
Le #766080
Mickaël Wolff a couché sur son écran :

Dans la console de Firefox, j'exécute la séquence suivant :

var re = new RegExp('^[a-z]([a-z]|[0-9]|[_\-])*$', 'ig'); while(1) {
if(confirm('Arrêter ? ('+ re.test('http://lupusmic.org') +')')) break ; } ;

Et test est toujours négatif.

Su quel navigateur testes-tu ?


Peu importe le navigateur si on utilise le code fourni...

--
Delf

--
Delf

Olivier Miakinen
Le #766079

Sur quel navigateur testes-tu ?


Peu importe le navigateur si on utilise le code fourni...


C'était, je suppose, pour mettre en évidence un bug éventuel d'un
navigateur donné. Un navigateur bugué pourrait ne pas donner le même
résultat que les autres, n'est-ce pas ?

Mais en l'occurrence il me semble que le problème a déjà trouvé sa
solution il y a environ un mois : c'était dû à l'emploi incorrect du
modificateur 'g'.


Delf
Le #765765
Olivier Miakinen a exprimé avec précision :

C'était, je suppose, pour mettre en évidence un bug éventuel d'un
navigateur donné. Un navigateur bugué pourrait ne pas donner le même
résultat que les autres, n'est-ce pas ?

Mais en l'occurrence il me semble que le problème a déjà trouvé sa
solution il y a environ un mois : c'était dû à l'emploi incorrect du
modificateur 'g'.


La réponse a été donnée sur ce thread ? Si 'oui', je ne l'ai pas.

En quoi l'argument 'g' peut faire bugguer la regex ?
Merci

--
Delf

SAM
Le #765764
Olivier Miakinen a exprimé avec précision :

Mais en l'occurrence il me semble que le problème a déjà trouvé sa
solution il y a environ un mois : c'était dû à l'emploi incorrect du
modificateur 'g'.


La réponse a été donnée sur ce thread ? Si 'oui', je ne l'ai pas.


ben non ... pas sur ce thread ... le mossieur il a dit :
« il y a un mois »

En quoi l'argument 'g' peut faire bugguer la regex ?


voir fil :
regexp, match
du 23/09/07
et en particulier les soluces esssplications :
La lumiere ? [Fut : regexp, match]
Eureka [Fut : regexp, match]
des 24 et 25/09/07


tu n'as pas de fonction de recherche dans ton emaileur ?

sinon :

--
sm


Delf
Le #765763
SAM vient de nous annoncer :

tu n'as pas de fonction de recherche dans ton emaileur ?


Si mais jamais utilisée.
Merci, j'i trouvé le post.

--
Delf

Olivier Miakinen
Le #765462

Mais en l'occurrence il me semble que le problème a déjà trouvé sa
solution il y a environ un mois : c'était dû à l'emploi incorrect du
modificateur 'g'.


La réponse a été donnée sur ce thread ? Si 'oui', je ne l'ai pas.


ben non ... pas sur ce thread ... le mossieur il a dit :
« il y a un mois »


Ah ? Ce n'était pas ce thread ? Possible en effet, et dans ce cas je
suis désolé. Mais je ne pouvais pas le vérifier car mon serveur ne garde
pas les articles pendant si longtemps.



Merci pour lui.



SAM
Le #765460

Ah ? Ce n'était pas ce thread ? Possible en effet, et dans ce cas je
suis désolé.


Bah, vu qu'on parle de regexp tous les 4 matins, on peut finir par avoir
autant de mal à s'y retrouver que dans les reg-expressions elles-mêmes.

Delf
Le #765459
SAM a formulé ce mardi :

Bah, vu qu'on parle de regexp tous les 4 matins, on peut finir par avoir
autant de mal à s'y retrouver que dans les reg-expressions elles-mêmes.


:)

--
Delf

Publicité
Poster une réponse
Anonyme