Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Probleme de RegExp

9 réponses
Avatar
xlaxague
Bonjour.

Voici une fonction :

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

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

var regExp =3D 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=E9cute le .test() plusieurs fois d'affil=E9e, j'obtiens true,
false,
true, false, etc...

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

9 réponses

Avatar
Mickaël Wolff

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

Avatar
Delf
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

Avatar
Olivier Miakinen

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'.


Avatar
Delf
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

Avatar
SAM
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 :
<http://groups.google.fr/groups?as_q=regexp&num&as_ugroup=fr.comp.lang.javascript&as_drrb=b&as_mind=1&as_minm=9&as_miny 07&as_maxd&as_maxm&as_maxy 07>

--
sm


Avatar
Delf
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

Avatar
Olivier Miakinen

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.

<http://groups.google.fr/groups?as_q=regexp&num&as_ugroup=fr.comp.lang.javascript&as_drrb=b&as_mind=1&as_minm=9&as_miny 07&as_maxd&as_maxm&as_maxy 07>


Merci pour lui.



Avatar
SAM

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.

Avatar
Delf
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