Javascript expression reguliere
ponpon
-
moa -
moa -
Bonjour
J'aimerai savoir comment faire pour vérifier si une adresse mac est correctement saisie, j'ai reussi pour un IP mais pas pour une adresse mac help please :
function verifmac2()
{
var taChaine = Feuille.iptv.value ;
var regexp = /\b([[a-fA-F][0-9]]{1,3}\:){6}\b/ ;
if (taChaine.match(regexp))
MAC() ;
else
{alert("MAC non valide") ; exit();}
en gros que je rentre une adresse mac valide ou non ca me dit mac invalide lol
MERCI D'AVANCE
J'aimerai savoir comment faire pour vérifier si une adresse mac est correctement saisie, j'ai reussi pour un IP mais pas pour une adresse mac help please :
function verifmac2()
{
var taChaine = Feuille.iptv.value ;
var regexp = /\b([[a-fA-F][0-9]]{1,3}\:){6}\b/ ;
if (taChaine.match(regexp))
MAC() ;
else
{alert("MAC non valide") ; exit();}
en gros que je rentre une adresse mac valide ou non ca me dit mac invalide lol
MERCI D'AVANCE
A voir également:
- Javascript expression reguliere
- Expression écrite cm1 cm2 télécharger gratuit - Télécharger - Éducatifs
- Telecharger javascript - Télécharger - Langages
- Microsoft expression encoder - Télécharger - Divers Utilitaires
- Javascript arrondi ✓ - Forum Javascript
- Avoir du ping expression ✓ - Forum Réseau
22 réponses
Ah lala !
Un peu de logique ;-))
Déja, il faudrait une adresse de ce type d'après ton expression :
6F:8F:FF:ED:8D:56:
Avec ":" a la fin.
Ensuite, si tu veux mettre les chiffres, c'est ca :
[a-fA-F0-9] et pas [[a-fA-F][0-9]]
Donc un truc qui marcherait, c'est ca :
/([a-fA-F0-9]{1,3}\:){5}([a-fA-F0-9]{1,3})/
Mais une adresse MAC a forcément 2 chiffres, non ?
Alors tu devrais mettre {2}, mais bon, tu fais comme tu veux
Un peu de logique ;-))
Déja, il faudrait une adresse de ce type d'après ton expression :
6F:8F:FF:ED:8D:56:
Avec ":" a la fin.
Ensuite, si tu veux mettre les chiffres, c'est ca :
[a-fA-F0-9] et pas [[a-fA-F][0-9]]
Donc un truc qui marcherait, c'est ca :
/([a-fA-F0-9]{1,3}\:){5}([a-fA-F0-9]{1,3})/
Mais une adresse MAC a forcément 2 chiffres, non ?
Alors tu devrais mettre {2}, mais bon, tu fais comme tu veux
Je suis debutant en prog lol
Merci pour l'info j'ai reussi a faire ma verif de saisie mais pour info il n'y a pas : apres la fin de l'@mac.
Merci pour l'info j'ai reussi a faire ma verif de saisie mais pour info il n'y a pas : apres la fin de l'@mac.
Autre petite chose comment on fait pour vérifier la saisie d'un mail . J'ai trouvé ca sur le net mais ca ne fonctionne pas apparament :
^[a-zA-Z0-9._%-]+@[neuf]+\.[fr]$
^[a-zA-Z0-9._%-]+@[neuf]+\.[fr]$
Salut,
à la fin de ton regex ^[a-zA-Z0-9._%-]+@[neuf]+\.[fr]$ on voit
[fr]$ qui veut dire : correspondre à un caractère énumeré dans la classe [fr] (normalement tu as besoin de f suit d'un r et pas seulement de f ou r, dont tlu peux écrire [fr]{2,} par exemple ) qui se trouve en fin de ligne $
Posibilités :
^[a-zA-Z0-9._%-]+@[neuf]+\.[fr] - pas logique tant que tu as besoin de reconnaître f suit d'un r($ est enlevé mai en ce cas tu vas reconnaître une addrese ponpon@neuf.ffffff est ce n'est pas ça qu'on veut)
^[a-zA-Z0-9._%-]+@[neuf]+\.[fr]{2,}$
pourquoi se limiter à neuf (en fait on lit n suit de e suit de u suit de f ) ?
^[a-zA-Z0-9._%-]+@[a-zA-Z]+\.[fr]$
et pareil pourquoi seulement f suit d'un r
[a-z]{2,} au lieu de [fr]{2,}
Quand on utilise un regex il faut savoir ce qu'on cherche et le contexte dans le quel on trouve ce qu'on cherche pour mieux adapter le regex.
Il faut lire un peut la documentation pour comprendre les métacaractères, les classes de caractères, les quantificateurs,...
Par exemple une façon de voir les choses.
Prenons le cas d'une classe de caractères complementé.
[^aeiou]
- on peux la lire : correspondre à tout caractère non enumeré
- ou : ne pas correspondre aux caractères enumeré
D'après toi la quelle version on choisi?
à la fin de ton regex ^[a-zA-Z0-9._%-]+@[neuf]+\.[fr]$ on voit
[fr]$ qui veut dire : correspondre à un caractère énumeré dans la classe [fr] (normalement tu as besoin de f suit d'un r et pas seulement de f ou r, dont tlu peux écrire [fr]{2,} par exemple ) qui se trouve en fin de ligne $
Posibilités :
^[a-zA-Z0-9._%-]+@[neuf]+\.[fr] - pas logique tant que tu as besoin de reconnaître f suit d'un r($ est enlevé mai en ce cas tu vas reconnaître une addrese ponpon@neuf.ffffff est ce n'est pas ça qu'on veut)
^[a-zA-Z0-9._%-]+@[neuf]+\.[fr]{2,}$
pourquoi se limiter à neuf (en fait on lit n suit de e suit de u suit de f ) ?
^[a-zA-Z0-9._%-]+@[a-zA-Z]+\.[fr]$
et pareil pourquoi seulement f suit d'un r
[a-z]{2,} au lieu de [fr]{2,}
Quand on utilise un regex il faut savoir ce qu'on cherche et le contexte dans le quel on trouve ce qu'on cherche pour mieux adapter le regex.
Il faut lire un peut la documentation pour comprendre les métacaractères, les classes de caractères, les quantificateurs,...
Par exemple une façon de voir les choses.
Prenons le cas d'une classe de caractères complementé.
[^aeiou]
- on peux la lire : correspondre à tout caractère non enumeré
- ou : ne pas correspondre aux caractères enumeré
D'après toi la quelle version on choisi?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tu peux toujour utiliser
au lieu de [a-zA-Z0-9_] le raccourci \w
au lieu de [0-9] le raccourci \d
\W est l'opposé de \w
\D est l'opposé de \d
au lieu de [a-zA-Z0-9_] le raccourci \w
au lieu de [0-9] le raccourci \d
\W est l'opposé de \w
\D est l'opposé de \d
Merci beaucoup je fais tester tout cela
et je veux juste neuf car je taff pour neuf donc il faut que je filtre les adresses ;-)
et je veux juste neuf car je taff pour neuf donc il faut que je filtre les adresses ;-)
function verifmailsaisie()
{
if(document.Feuille.mail.value.match
(^[a-zA-Z0-9._%-]+@[neuf]+\.[fr]{2,}$)
{
mail ();
}
else
{alert("mail invalide");
exit();}
}
Ca ne fonctionne pas
{
if(document.Feuille.mail.value.match
(^[a-zA-Z0-9._%-]+@[neuf]+\.[fr]{2,}$)
{
mail ();
}
else
{alert("mail invalide");
exit();}
}
Ca ne fonctionne pas
(/^[a-zA-Z0-9-]+@[neuf]+\.[fr]{2}$/)
Ca ca fonctionne mais par contre si je rentre neufff ca lance aussi le test lol
Est ce qu'il y a moyen de dire juste neuf ?
Ca ca fonctionne mais par contre si je rentre neufff ca lance aussi le test lol
Est ce qu'il y a moyen de dire juste neuf ?
Salut,
[neuf] c'est une classe de caractères qui reconnaît un des caractères
n ou e ou u ou f
si tu mets [neuf]+ ça veut dire que nnnneeuufff et aussi reconnu.
+ c'est un quantificateur qui veut dire une fois ou plusieurs fois que tu veux (il ne faut pas oublié la gourmandise des quantificateurs - enfin je travaille en Perl avec le regex, je n'ai pas étudier encore le cas de java)
Donc [neuf]+ veut dire n ou e ou u ou f une fois ou plusieurs fois.
Et comme + et gourmandes alors jusqu'à @ il va trouver une infinité des combinaison de n au moins une fois ou combiens des fois tu veux, e......
si tu as besoin seulement de neuf alors mets neuf et pas [neuf]+
en fait si tu as besoin que de neuf.fr tu mets neuf\.fr
[neuf] c'est une classe de caractères qui reconnaît un des caractères
n ou e ou u ou f
si tu mets [neuf]+ ça veut dire que nnnneeuufff et aussi reconnu.
+ c'est un quantificateur qui veut dire une fois ou plusieurs fois que tu veux (il ne faut pas oublié la gourmandise des quantificateurs - enfin je travaille en Perl avec le regex, je n'ai pas étudier encore le cas de java)
Donc [neuf]+ veut dire n ou e ou u ou f une fois ou plusieurs fois.
Et comme + et gourmandes alors jusqu'à @ il va trouver une infinité des combinaison de n au moins une fois ou combiens des fois tu veux, e......
si tu as besoin seulement de neuf alors mets neuf et pas [neuf]+
en fait si tu as besoin que de neuf.fr tu mets neuf\.fr
function verifmail()
{
if(document.Feuille.mail.value.match
(/^[a-zA-Z0-9-]+\@neuf\.fr$/) || (/^[a-zA-Z0-9-]+\@neufpnp$/))
{
mail();
}
else
{alert("Mail non valide");
exit();}
}
Ca ne me fait plus les tests et si je crée deux fonctions distinc il y en a une qui passe et pas l'autre normal ...
{
if(document.Feuille.mail.value.match
(/^[a-zA-Z0-9-]+\@neuf\.fr$/) || (/^[a-zA-Z0-9-]+\@neufpnp$/))
{
mail();
}
else
{alert("Mail non valide");
exit();}
}
Ca ne me fait plus les tests et si je crée deux fonctions distinc il y en a une qui passe et pas l'autre normal ...
J'ai mis \@ puisque dans Perl @ est utiliser pour les tableau donc si je mets @neuf perl leve une exception, donc j'ai utiliser \@neuf dans mon expressions régulière.
Donc j'ai tester le regex de mon message 12 et ça va.
Tu peux afficher quelques examples de chaine sur lequelles tu testes?
Donc j'ai tester le regex de mon message 12 et ça va.
Tu peux afficher quelques examples de chaine sur lequelles tu testes?
ponpon17430@neuf.fr
ponpon17430@neufpnp
((/^[a-zA-Z0-9-]+\@neuf\.fr$/) || (/^[a-zA-Z0-9-]+\@neufpnp$/))
j'ai fais un ou comme ca mais ca ne marche pas non plus le neuf.fr il passe mais pas le neufpnp
ponpon17430@neufpnp
((/^[a-zA-Z0-9-]+\@neuf\.fr$/) || (/^[a-zA-Z0-9-]+\@neufpnp$/))
j'ai fais un ou comme ca mais ca ne marche pas non plus le neuf.fr il passe mais pas le neufpnp
Salut,
ce n'est pas vraiment bien ce que tu veux
((/^[a-zA-Z0-9-]+\@neuf\.fr$/) || (/^[a-zA-Z0-9-]+\@neufpnp$/))
si tu mets
((/^[a-zA-Z0-9-]+\@neufpnp$/) || (/^[a-zA-Z0-9-]+\@neuf\.fr$/))
alors c'est ponpon17430@neufpnp qui passe ( || veut dire ou ) donc si 1ère expression est vraie alors on s'arrête là.
Tu peux utiliser /^[a-zA-Z0-9._%-]+\@neuf(\.fr|pnp)$/
pour reconnaître :
ponpon17430@neuf.fr
ponpon17430@neufpnp
ce n'est pas vraiment bien ce que tu veux
((/^[a-zA-Z0-9-]+\@neuf\.fr$/) || (/^[a-zA-Z0-9-]+\@neufpnp$/))
si tu mets
((/^[a-zA-Z0-9-]+\@neufpnp$/) || (/^[a-zA-Z0-9-]+\@neuf\.fr$/))
alors c'est ponpon17430@neufpnp qui passe ( || veut dire ou ) donc si 1ère expression est vraie alors on s'arrête là.
Tu peux utiliser /^[a-zA-Z0-9._%-]+\@neuf(\.fr|pnp)$/
pour reconnaître :
ponpon17430@neuf.fr
ponpon17430@neufpnp
Non, je suis chez free.
Gardez ces 2 liens pour tester tes regex (pour plus tard je parle), ça pourra servir.
http://www.aidejavascript.com/article146.html
http://www.annuaire-info.com/expression-reguliere.html
Gardez ces 2 liens pour tester tes regex (pour plus tard je parle), ça pourra servir.
http://www.aidejavascript.com/article146.html
http://www.annuaire-info.com/expression-reguliere.html
Derniere petite chose est ce que tu sais comment lire le contenu d'une page web genre j'ai une page ou se trouve un numéro de tel et j'aimerai pouvoir le recuperer automatiquement grace a une fonction
C'est possible bien sûr, et je sais le faire (pour repondre à ta question).
En revanche il faut savoir comment il est écrit le numéro de téléphone dans la page web que tu cherches.
C'est bien de savoir la structure de fichier quand on utilise le regex. Bien sûr on peut imaginer plusieurs façon de chercher, mais quand on sait la structure de fichier c'est plus facile.
Par exemple un numéro avec la forme tel. 01 22 22 22 22 se trouvant dans une page web blabla.html
tu peux le récuperer avec egrep (sous linux) tout simplement
En revanche il faut savoir comment il est écrit le numéro de téléphone dans la page web que tu cherches.
C'est bien de savoir la structure de fichier quand on utilise le regex. Bien sûr on peut imaginer plusieurs façon de chercher, mais quand on sait la structure de fichier c'est plus facile.
Par exemple un numéro avec la forme tel. 01 22 22 22 22 se trouvant dans une page web blabla.html
tu peux le récuperer avec egrep (sous linux) tout simplement
[lamitest@localhost corbeille]$ egrep -o 'tel\. 0[0-9] ([0-9][0-9]\s?){4}' test_mail_regex.pl
tel. 01 22 22 22 22
[lamitest@localhost corbeille]$Bon le test et fait sur un fichier texte mais un fichier html est un fichier texte.