Pour valider un champs contenant une IP, j'utilises ce code :
alert("'" + IP + "'");
var regExpIpAdress=/\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]
|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/g;
if (regExpIpAdress.test(IP) == false) {
alert("IP '" + IP + "' non valide");
return;
}
Quand j'appelle ce code la premiere fois, il affiche la bonne IP et l'alert
pour dire qu'elle n'est pas valide.
Quand j'appelle ce code une seconde fois, il affiche la même bonne IP et le
test réussi...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
O.L.
Bonjour,
Pour valider un champs contenant une IP, j'utilises ce code :
alert("'" + IP + "'");
var regExpIpAdress=/b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(25[0-5]
2[0-4][0-9]|[01]?[0-9][0-9]?)b/g; if (regExpIpAdress.test(IP) == false) {
alert("IP '" + IP + "' non valide"); return; }
Quand j'appelle ce code la premiere fois, il affiche la bonne IP et l'alert pour dire qu'elle n'est pas valide. Quand j'appelle ce code une seconde fois, il affiche la même bonne IP et le test réussi...
Une idée ?
T'es sûr que c'est bien .test() pour tester la conformité d'un texte à un regexp ?
-- Olivier Ligny Créateur web free-lance / www.cyber-tamtam.net
Bonjour,
Pour valider un champs contenant une IP, j'utilises ce code :
alert("'" + IP + "'");
var regExpIpAdress=/b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(25[0-5]
2[0-4][0-9]|[01]?[0-9][0-9]?)b/g;
if (regExpIpAdress.test(IP) == false) {
alert("IP '" + IP + "' non valide");
return;
}
Quand j'appelle ce code la premiere fois, il affiche la bonne IP et l'alert
pour dire qu'elle n'est pas valide.
Quand j'appelle ce code une seconde fois, il affiche la même bonne IP et le
test réussi...
Une idée ?
T'es sûr que c'est bien .test() pour tester la conformité d'un texte à
un regexp ?
--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net
Pour valider un champs contenant une IP, j'utilises ce code :
alert("'" + IP + "'");
var regExpIpAdress=/b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(25[0-5]
2[0-4][0-9]|[01]?[0-9][0-9]?)b/g; if (regExpIpAdress.test(IP) == false) {
alert("IP '" + IP + "' non valide"); return; }
Quand j'appelle ce code la premiere fois, il affiche la bonne IP et l'alert pour dire qu'elle n'est pas valide. Quand j'appelle ce code une seconde fois, il affiche la même bonne IP et le test réussi...
Une idée ?
T'es sûr que c'est bien .test() pour tester la conformité d'un texte à un regexp ?
-- Olivier Ligny Créateur web free-lance / www.cyber-tamtam.net
Thierry
O.L. écrivait news::
T'es sûr que c'est bien .test() pour tester la conformité d'un texte à un regexp ?
Heu.. oui. Ca marche bien pour tester l'adresse MAC en tout cas.
T'es sûr que c'est bien .test() pour tester la conformité d'un texte à un regexp ?
Heu.. oui. Ca marche bien pour tester l'adresse MAC en tout cas.
O.L.
O.L. écrivait news::
T'es sûr que c'est bien .test() pour tester la conformité d'un texte à un regexp ?
Heu.. oui. Ca marche bien pour tester l'adresse MAC en tout cas.
Bon, j'ai essayé moi aussi, et effectivement ça ne renvoie pas le même résultat une fois sur deux, que ce soit avec exec(), search(), ou test() ... Par contre si on ne crée pas d'objet RegExp, et qu'on met le pattern dans la fonction elle même, là ça marche tout le temps :
<script>
IP = "123.125.122.111";
function checkIP(IP) { if (/b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(25[0-5]2[0-4][0-9]|[01]?[0-9][0-9]?)b/g.exec(IP) == null) alert("IP '" + IP + "' non valide :("); else alert("IP valide :)"); }
checkIP(IP); checkIP(IP); checkIP(IP);
</script>
@+
-- Olivier Ligny Créateur web free-lance / www.cyber-tamtam.net
T'es sûr que c'est bien .test() pour tester la conformité d'un texte à
un regexp ?
Heu.. oui. Ca marche bien pour tester l'adresse MAC en tout cas.
Bon, j'ai essayé moi aussi, et effectivement ça ne renvoie pas le même
résultat une fois sur deux, que ce soit avec exec(), search(), ou
test() ...
Par contre si on ne crée pas d'objet RegExp, et qu'on met le pattern
dans la fonction elle même, là ça marche tout le temps :
<script>
IP = "123.125.122.111";
function checkIP(IP) {
if
(/b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(25[0-5]2[0-4][0-9]|[01]?[0-9][0-9]?)b/g.exec(IP)
== null)
alert("IP '" + IP + "' non valide :(");
else
alert("IP valide :)");
}
checkIP(IP);
checkIP(IP);
checkIP(IP);
</script>
@+
--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net
T'es sûr que c'est bien .test() pour tester la conformité d'un texte à un regexp ?
Heu.. oui. Ca marche bien pour tester l'adresse MAC en tout cas.
Bon, j'ai essayé moi aussi, et effectivement ça ne renvoie pas le même résultat une fois sur deux, que ce soit avec exec(), search(), ou test() ... Par contre si on ne crée pas d'objet RegExp, et qu'on met le pattern dans la fonction elle même, là ça marche tout le temps :
<script>
IP = "123.125.122.111";
function checkIP(IP) { if (/b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(25[0-5]2[0-4][0-9]|[01]?[0-9][0-9]?)b/g.exec(IP) == null) alert("IP '" + IP + "' non valide :("); else alert("IP valide :)"); }
checkIP(IP); checkIP(IP); checkIP(IP);
</script>
@+
-- Olivier Ligny Créateur web free-lance / www.cyber-tamtam.net
Thierry
O.L. écrivait news::
Bon, j'ai essayé moi aussi, et effectivement ça ne renvoie pas le même résultat une fois sur deux, que ce soit avec exec(), search(), ou test() ... Par contre si on ne crée pas d'objet RegExp, et qu'on met le pattern dans la fonction elle même, là ça marche tout le temps :
C'est quand même curieux cette histoire... T'as testé avec quel browser ? Moi le dernier Firefox.
Bon, j'ai essayé moi aussi, et effectivement ça ne renvoie pas le même
résultat une fois sur deux, que ce soit avec exec(), search(), ou
test() ...
Par contre si on ne crée pas d'objet RegExp, et qu'on met le pattern
dans la fonction elle même, là ça marche tout le temps :
C'est quand même curieux cette histoire...
T'as testé avec quel browser ? Moi le dernier Firefox.
Bon, j'ai essayé moi aussi, et effectivement ça ne renvoie pas le même résultat une fois sur deux, que ce soit avec exec(), search(), ou test() ... Par contre si on ne crée pas d'objet RegExp, et qu'on met le pattern dans la fonction elle même, là ça marche tout le temps :
C'est quand même curieux cette histoire... T'as testé avec quel browser ? Moi le dernier Firefox.
O.L.
O.L. écrivait news::
Bon, j'ai essayé moi aussi, et effectivement ça ne renvoie pas le même résultat une fois sur deux, que ce soit avec exec(), search(), ou test() ... Par contre si on ne crée pas d'objet RegExp, et qu'on met le pattern dans la fonction elle même, là ça marche tout le temps :
C'est quand même curieux cette histoire... T'as testé avec quel browser ? Moi le dernier Firefox.
J'ai testé ton code et le mien sous IE6. A mon avis, lorsque l'on crée un objet RegExp, une de ses propriétés change à chaque fois qu'on l'utilise, ce qui donne des résultats inattendus. Sans doute qu'à chaque fois qu'on lui fait trouver l'occurence de A dans B, il se met à jour pour être prêt à chercher l'occurence suivante.
Voici ce que dit ma doc :
exec A RegExp method that executes a search for a match in a string. It returns an array of information.
test A RegExp method that tests for a match in a string. It returns true or false.
match A String method that executes a search for a match in a string. It returns an array of information or null on a mismatch.
search A String method that tests for a match in a string. It returns the index of the match, or -1 if the search fails.
replace A String method that executes a search for a match in a string, and replaces the matched substring with a replacement substring.
split A String method that uses a regular expression or a fixed string to break a string into an array of substrings.
When you want to know whether a pattern is found in a string, use the test or search method; for more information (but slower execution) use the exec or match methods. If you use exec or match and if the match succeeds, these methods return an array *and update properties* of the associated regular expression object and also of the predefined regular expression object, RegExp. If the match fails, the exec method returns null (which converts to false).
-- Olivier Ligny Créateur web free-lance / www.cyber-tamtam.net
Bon, j'ai essayé moi aussi, et effectivement ça ne renvoie pas le même
résultat une fois sur deux, que ce soit avec exec(), search(), ou
test() ...
Par contre si on ne crée pas d'objet RegExp, et qu'on met le pattern
dans la fonction elle même, là ça marche tout le temps :
C'est quand même curieux cette histoire...
T'as testé avec quel browser ? Moi le dernier Firefox.
J'ai testé ton code et le mien sous IE6.
A mon avis, lorsque l'on crée un objet RegExp, une de ses propriétés
change à chaque fois qu'on l'utilise, ce qui donne des résultats
inattendus. Sans doute qu'à chaque fois qu'on lui fait trouver
l'occurence de A dans B, il se met à jour pour être prêt à chercher
l'occurence suivante.
Voici ce que dit ma doc :
exec
A RegExp method that executes a search for a match in a string. It
returns an array of information.
test
A RegExp method that tests for a match in a string. It returns true or
false.
match
A String method that executes a search for a match in a string. It
returns an array of information or null on a mismatch.
search
A String method that tests for a match in a string. It returns the
index of the match, or -1 if the search fails.
replace
A String method that executes a search for a match in a string, and
replaces the matched substring with a replacement substring.
split
A String method that uses a regular expression or a fixed string to
break a string into an array of substrings.
When you want to know whether a pattern is found in a string, use the
test or search method; for more information (but slower execution) use
the exec or match methods. If you use exec or match and if the match
succeeds, these methods return an array *and update properties* of the
associated regular expression object and also of the predefined regular
expression object, RegExp. If the match fails, the exec method returns
null (which converts to false).
--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net
Bon, j'ai essayé moi aussi, et effectivement ça ne renvoie pas le même résultat une fois sur deux, que ce soit avec exec(), search(), ou test() ... Par contre si on ne crée pas d'objet RegExp, et qu'on met le pattern dans la fonction elle même, là ça marche tout le temps :
C'est quand même curieux cette histoire... T'as testé avec quel browser ? Moi le dernier Firefox.
J'ai testé ton code et le mien sous IE6. A mon avis, lorsque l'on crée un objet RegExp, une de ses propriétés change à chaque fois qu'on l'utilise, ce qui donne des résultats inattendus. Sans doute qu'à chaque fois qu'on lui fait trouver l'occurence de A dans B, il se met à jour pour être prêt à chercher l'occurence suivante.
Voici ce que dit ma doc :
exec A RegExp method that executes a search for a match in a string. It returns an array of information.
test A RegExp method that tests for a match in a string. It returns true or false.
match A String method that executes a search for a match in a string. It returns an array of information or null on a mismatch.
search A String method that tests for a match in a string. It returns the index of the match, or -1 if the search fails.
replace A String method that executes a search for a match in a string, and replaces the matched substring with a replacement substring.
split A String method that uses a regular expression or a fixed string to break a string into an array of substrings.
When you want to know whether a pattern is found in a string, use the test or search method; for more information (but slower execution) use the exec or match methods. If you use exec or match and if the match succeeds, these methods return an array *and update properties* of the associated regular expression object and also of the predefined regular expression object, RegExp. If the match fails, the exec method returns null (which converts to false).
-- Olivier Ligny Créateur web free-lance / www.cyber-tamtam.net
Thierry
O.L. écrivait news::
Bon, j'ai essayé moi aussi, et effectivement ça ne renvoie pas le même résultat une fois sur deux, que ce soit avec exec(), search(), ou test() ...
Bon, j'ai essayé moi aussi, et effectivement ça ne renvoie pas le même résultat une fois sur deux, que ce soit avec exec(), search(), ou test() ...
Ca marche bien tel quel si j'ote l'option "g"...
O.L.
O.L. écrivait news::
Bon, j'ai essayé moi aussi, et effectivement ça ne renvoie pas le même résultat une fois sur deux, que ce soit avec exec(), search(), ou test() ...
Ca marche bien tel quel si j'ote l'option "g"...
Haha, alors ça doit être ça l'option qui spécifie si l'on recherche toutes les occurences les unes après les autres (=> bug) ou bien une seule fois (=> résultat invariant) ...
-- Olivier Ligny Créateur web free-lance / www.cyber-tamtam.net
Bon, j'ai essayé moi aussi, et effectivement ça ne renvoie pas le même
résultat une fois sur deux, que ce soit avec exec(), search(), ou
test() ...
Ca marche bien tel quel si j'ote l'option "g"...
Haha, alors ça doit être ça l'option qui spécifie si l'on recherche
toutes les occurences les unes après les autres (=> bug) ou bien une
seule fois (=> résultat invariant) ...
--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net
Bon, j'ai essayé moi aussi, et effectivement ça ne renvoie pas le même résultat une fois sur deux, que ce soit avec exec(), search(), ou test() ...
Ca marche bien tel quel si j'ote l'option "g"...
Haha, alors ça doit être ça l'option qui spécifie si l'on recherche toutes les occurences les unes après les autres (=> bug) ou bien une seule fois (=> résultat invariant) ...
-- Olivier Ligny Créateur web free-lance / www.cyber-tamtam.net