Rechercher : dans
Par :

Fonction Match() en javascript

Dernière réponse le 17 fév 2006 à 12:33:12 Xeus, le 25 jan 2005 à 17:19:26 
 Signaler ce message aux modérateurs

Hello world,

voila j'aimerais faire un controle de saisie sur un champs d'un formulaire en utilisant la fonction match() et pas moyen d'arriver a ce que je veux.
L'utilisateur ne saisie que le 2eme et 3eme octets ainsi que les points de séparations.

Explications :

192.168 sont deux octets bloqués (afficher a l'ecran), l'utilisateur peut avoir les choix de saisie suivants :

1=> X.X
2=> X.XX
3=> X.XXX ( jusqu'a 255 seulement )
(on suppose que le 3eme octet ne comprend qu'un seul chiffre).


Voici mon code (faite un copier/coller pour + de clarté) :


function verif()
{
var formip1 = new RegExp( "([0-9]{1})+(\.)+([0-9]{1})","gi" );
var formip2 = new RegExp( "([0-9]{1})+(\.)+([0-9]{2})","gi" );
var formip3 = new RegExp( "([0-9]{1})+(\.)+([0-2]{1})+([0-5]{1})+([0-5]{1})","gi" );
var ip1=window.document.formulaire.ip.value.match(formip1);
var ip2=window.document.formulaire.ip.value.match(formip2);
var ip3=window.document.formulaire.ip.value.match(formip3);

if ( ip1 == null && ip2 == null && ip3 == null )
alert ("L'adresse ip n'est pas valide !");
else alert ("ok");
}


Voila g aussi essayé en php avec ereg, de toute facon c le mm principe et je n'y arrive pas plus.

Merci de m'aider si vous avez une idée.
N'hesitez pas a me poser des questions.

Xeus

Meilleures réponses pour « Fonction Match() en javascript » dans :
Javascript - trim() VoirLa fonction trim() de PHP (et d'autres langages) permet de supprimer les espaces en début et fin de chaîne. Il n'existe pas de telle fonction en Javascript mais le code suivant permet de la remplacer : Function trim (myString) { return...
Javascript - Manipulation des contrôles clavier VoirManipulation des contrôles clavier Cette astuce a pour but de vous faire découvrir la (ou du moins une) manière de contrôler les évènements clavier en javascript. Cela vous permettra de contrôler/attribuer les/des comportements particuliers à...
Javascript - Afficher un message d'au-revoir aux visiteurs VoirIl est parfois très plaisant d'afficher un message en remerciant les visiteurs de votre site de leur passage. Cette astuce a pour but de vous montrer comment s'y prendre. 1.La fonction JavaScript 2.Appel du Script 1.La fonction...
Javascript - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Cette notion de sous-programme est généralement appelée fonction...
Javascript - L'objet Math VoirLes particularités de l'objet Math L'objet Math est, comme vous l'imaginez, un objet qui a de nombreuses méthodes et propriétés permettant de manipuler des nombres et qui contient des fonctions mathématiques courantes. Quelque soit la méthode ou la...
Javascript - Les événements VoirQu'appelle-t-on un événement? Les événements sont des actions de l'utilisateur, qui vont pouvoir donner lieu à une interactivité. L'événement par excellence est le clic de souris, car c'est le seul que le HTML gère. Grâce au Javascript il est...

1

alex, le 25 jan 2005 à 21:50:05

Bonsoir, j'ai regardé un peu ton code et je l'ai testé. Et il ne marche pas. Jusque là je n'apprends rien à personne. Par contre je pense que ca vient de ton expression régulière qui est fausse. Mes conseils :

function verif()
{
  var taChaine = window.document.formulaire.ip.value ;
	var regexp = /\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/ ;	
	if (taChaine.match(regexp))
		alert ("ok");
	else 
		alert ("L'adresse ip n'est pas valide !");
}


Ce code vérifie la totalité d'une IP, en prenant soin de vérifier que chaque octet est compris entre 0..255. J'ai trouvé cela sur http://www.regular-expressions.info/examples.html

Répondre à alex

2

alex, le 25 jan 2005 à 21:52:06

Et pour tout le monde : attention aux quotes ! Quand on met des caractères spéciaux entre "" il faut les faire précéder d'un "\" si vous voulez annuler leur effet...

Répondre à alex

3

Xeus, le 26 jan 2005 à 10:41:35

Merci beaucoup alex ta fonction m'a sauvé.

Cependant j'aimerais comprendre un peu mieux la manière dont elle fonctionne parce que c'est un peut vague.

A quoi correspondent les ":" ?
Pourrais-tu éclairé la partie : " [01]?[0-9][0-9]? " de ton code stp ?


Merci encore une fois.

Xeus

Répondre à Xeus

5

alex, le 26 jan 2005 à 18:36:30

Hé hé hé... Je n'ai pas du tout étudié cette expression régulière car elle me semblait pour le moins complexe (du fait qu'on veuille des valeurs qui ne dépassent pas 255). Donc je vais aller sur http://www.expreg.com et essayer de voir ce que signifie cette caine. Je t'encourage à aussi utiliser le forum de ce site si tu n'as pas de réponse d'ici 1h...

Avec un peu de logique, je peux cependant répondre à ta question n°2. L'expression "[01]?[0-9][0-9]?" recueille les nombres de 0 à 199 ;) D'abord soit "0" soit "1" une fois ou zero fois (?) suivi de deux chiffres, pouvant aller de 0 à 9 chacun. Si je suis pas clair n'hésite pas à le dire !

Par contre les ":" je ne sais pas trop...

Répondre à alex

6

alex, le 26 jan 2005 à 18:40:45

Ca m'a mis la puce à l'oreille, j'aurais dû regarder la regexp avant de poster mon message, ca m'apprendra... Donc en fait l'idée c'est de dire qu'une adresse IP c'est 4 fois le pattern suivant, séparés par des points :

soit "25" suivi d'un chiffre de 0 à 5 (de 250 à 255)
soit "2" suivi d'un chiffre de 0 à 4 suivi d'un chiffre de 0 à 9 (200 à 249)
soit "1" suivi de deux chiffres de 0 à 9 (100 à 199)
soit "0" suivi de deux chiffres de 0 à 9 (000 à 099)

Ca devrait t'éclairer un peu plus je pense...

Répondre à alex

4

Marmot, le 26 jan 2005 à 12:04:27

En matière d'expressions rationnelles j'encourage tout le monde à d'abord tester son expression sur http://magali.contensin.free.fr/html/JAVASCRIPT/cours/PREDEF­/ExpressionsReg.html (enregistrer sous en local fonctionne également)

En essayant continuellement on fini par réussir.
Donc plus ca rate, plus on a de chance que ca marche.

Répondre à Marmot

7

Xeus, le 26 jan 2005 à 19:24:16

Ok ok g compris. Merci pour tes explications ca m'a aider.

G enfin réussi a faire le controle de saisie sur cet ip de malheur, g failli laisser tomber.

Enfin bref merci a alex et marmot pour leur aide.

Xeus

Répondre à Xeus

8

ponpon, le 17 fév 2006 à 12:00:47

Tu peux indiquer ton code pour vérifier l'IP ?
Moi j'aimerai vérifier si le nombre de caractère est valide
mais j'ai pas accès au net a mon taf juste au site ccm

Répondre à ponpon

9

 ponpon, le 17 fév 2006 à 12:33:12

En fait c'est bon j'ai repris le code indiquer :

var regexp = /\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/

Merci pour les info

Répondre à ponpon