Rechercher : dans
Par :

Javascript expression reguliere

Dernière réponse le 26 jun 2008 à 10:24:10 ponpon, le 17 fév 2006 à 15:00:29 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Javascript expression reguliere » dans :
[RegExp] Récupérer une adresse IP VoirFinalité Mise en œuvre Explications Interprétation du motif Récupérer une adresse IP Finalité Pour récupérer une IP dans un fichier texte, fichiers journaux, pages web, etc. Mise en œuvre L'expression régulière suivante combinée à la...
Sed - Trucs et astuces VoirSubstitution Affichage Suppression Espace et tabulation Ligne vide Intervalle régulier Divers Joindre des lignes Affichage insensible à la casse Substitution Substituer "foo" par "bar" à chaque ligne Seulement la 1ère...
PHP - Expressions régulières VoirQu'est-ce qu'une expression régulière? Les expressions régulières sont des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, c'est-à-dire permettant de trouver les portions de la chaîne correspondant au...
Javascript - L'objet RegExp VoirLes particularités de l'objet RegExp L'objet RegExp est un objet permettant de manipuler des expressions régulières, c'est-à-dire des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, afin de trouver des...

1

StreM, le 17 fév 2006 à 15:21:36

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


Moins le blanc est intelligent, plus le noir lui parait bête

Répondre à StreM

2

ponpon, le 17 fév 2006 à 16:39:52

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.

Répondre à ponpon

3

Zep3k!GnO, le 17 fév 2006 à 16:44:25

pour info il n'y a pas : apres la fin de l'@mac.
c'est bien ce qu'il te dit ...
Déja, il faudrait une adresse de ce type d'après ton expression :
6F:8F:FF:ED:8D:56:
Avec ":" a la fin.

mais pas de soushi ;P Zep3k!GnO

On est des rangers mec, des rangers...

Répondre à Zep3k!GnO

4

ponpon, le 18 fév 2006 à 08:22:26

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]$

Répondre à ponpon

5

lami20j, le 18 fév 2006 à 10:06:25

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?

Répondre à lami20j

6

lami20j, le 18 fév 2006 à 10:26:05

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

Répondre à lami20j

7

ponpon, le 18 fév 2006 à 11:14:12

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 ;-)

Répondre à ponpon

8

ponpon, le 18 fév 2006 à 11:24:43

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

Répondre à ponpon

9

ponpon, le 18 fév 2006 à 11:54:59

(/^[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 ?

Répondre à ponpon

10

lami20j, le 18 fév 2006 à 13:21:34

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

Répondre à lami20j

11

ponpon, le 18 fév 2006 à 13:30:35

La j'ai mis ca :

/^[a-zA-Z0-9-]+@[neuf]\.fr$/

ou ca :

/^[a-zA-Z0-9-]+@neuf\.fr$/

Ca ne fonctionne pas raa.

Répondre à ponpon

12

lami20j, le 18 fév 2006 à 13:37:38

Chez moi ( et avec perl) ça fonctionne :

/^[a-zA-Z0-9-]+\@neuf\.fr$/ 

Répondre à lami20j

14

ponpon, le 18 fév 2006 à 13:41:18

MERCI !!!!!!!!!!!!!!!!!!!!!!
MERCI !!!!!!!!!!!!!!!!!!!!!!
MERCI !!!!!!!!!!!!!!!!!!!!!!
MERCI !!!!!!!!!!!!!!!!!!!!!!
MERCI !!!!!!!!!!!!!!!!!!!!!!
MERCI !!!!!!!!!!!!!!!!!!!!!!

j'ai trop galéré ca MARCHE !!

Répondre à ponpon

13

ponpon, le 18 fév 2006 à 13:37:44

Ou encore :
(/^[a-zA-Z0-9-]+@[neuf]\.[fr]$/)

et ca me sort mail invalide

Répondre à ponpon

15

lami20j, le 18 fév 2006 à 13:42:15

Affiche le regex et aussi la chaine sur laquelle tu testes ton regex

Répondre à lami20j

16

lami20j, le 18 fév 2006 à 13:43:59
Répondre à lami20j

18

ponpon, le 18 fév 2006 à 13:55:45

J'ai pas accès au net juste a ccm

Répondre à ponpon

17

ponpon, le 18 fév 2006 à 13:55:11

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

Répondre à ponpon

19

lami20j, le 18 fév 2006 à 14:03:45

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?

Répondre à lami20j

20

ponpon, le 18 fév 2006 à 14:09:14

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

Répondre à ponpon

21

lami20j, le 18 fév 2006 à 14:24:53

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

Répondre à lami20j

22

ponpon, le 18 fév 2006 à 14:27:08

Encore merci tout fonctionne nikel
Tu es client chez 9T ?

Répondre à ponpon

23

lami20j, le 18 fév 2006 à 14:33:06

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

Répondre à lami20j

24

ponpon, le 18 fév 2006 à 14:35:01

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

Répondre à ponpon