begin process at 2012 05 28 10:10:13
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaire

 > FONCTIONS DE VÉRIFICATION DE FORMULAIRE + FONCTIONS UTILES (EXTENSION DE L'OBJET STRING)

FONCTIONS DE VÉRIFICATION DE FORMULAIRE + FONCTIONS UTILES (EXTENSION DE L'OBJET STRING)


 Information sur la source

Note :
5 / 10 - par 1 personne
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Formulaire Niveau :Débutant Date de création :19/05/2004 Date de mise à jour :10/05/2006 19:52:39 Vu :12 384

Auteur : tarzent

Ecrire un message privé
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Fonctions optimisées: vérification de date, numero de tel, de secu, de chaines alphanumérique, nombres... Utiles : trim, replaceAll, formattage de date.

Ces fonctions étendent l'objet String, il faut donc les utiliser comme ceci:
'variableString'.'nomDeLaFunction'

ex:
var oneDate = "1-01-02"
oneDate = oneDate.completeDate();    // oneDate sera à 01/01/2002

ou

var oneNumber = "-128";
if (true == oneNumber.isNumber())
    alert("oneNumber est un nombre !");

Source

  • // FONCTIONS UTILES
  • // Complete une date pour qu'elle soit au format JJ/MM/AAAA
  • // 1.01.1, 1/1/01, 01-01-01, 010101, 01012001 donneront tous 01/01/2001
  • // dans le cas ou l'année n'est pas complétement renseignée,
  • // celle-ci est déduite en fonction de l'année en cours
  • // (ex: 2/12/54 -> 02/12/1954 et 2/12/4 -> 02/12/2004)
  • String.prototype.completeDate = function() {
  • var chain = this;
  • if (/^\d+$/.test(chain) && (6 == chain.length || 8 == chain.length))
  • chain = chain.substring(0, 2) + "/" + chain.substring(2, 4) + "/" + chain.substring(4, chain.length);
  • var reg = /^(\d{1,2})[\/\.\\-](\d{1,2})[\/\.\\-](\d{1,4})$/;
  • if (reg.test(chain)) {
  • chain = chain.replace(reg, "$1/$2/$3");
  • var tab = chain.split("/");
  • for (var i = 0; i < 2; i++)
  • tab[i] = eval(tab[i]) > 9 ? tab[i] : "0" + eval(tab[i]);
  • if (4 != tab[2].length) {
  • var ObjetDate = new Date();
  • var year = new String(ObjetDate.getFullYear());
  • if (eval(tab[2]) > eval(year.substring(2,4)))
  • year = eval(year.substring(0,2) - 1) + year.substring(2,4);
  • tab[2] = year.substring(0, 4 - tab[2].length) + tab[2];
  • }
  • return tab.join("/");
  • }
  • return chain;
  • }
  • // Remplace toutes les occurences d'une chaine
  • String.prototype.replaceAll = function(search, repl) {
  • var str = this;
  • while (str.indexOf(search) != -1)
  • str = str.replace(search, repl);
  • return str;
  • }
  • // Supprime les espaces de début et de fin de chaine
  • String.prototype.trim = function() {
  • return this.replace(/(^\s*)|(\s*$)/g, "");
  • }
  • // VERIFICATION DE CHAINES DE CARACTERES
  • // Date au format JJ/MM/AAAA (à utiliser éventuellement avec completeDate())
  • // Vérifie si la date existe.
  • String.prototype.isDate = function() {
  • if (/^\d{2}[\/]\d{2}[\/]\d{4}$/.test(this)) {
  • var dat1 = this.split("/");
  • var dat2 = new Date(dat1[2], dat1[1] - 1, dat1[0]);
  • return (dat2.getDate() == dat1[0] && dat2.getMonth() == dat1[1]-1 && dat2.getFullYear() == dat1[2]);
  • }
  • return false;
  • }
  • // Caractères alphabétiques (accents pris en charge + espaces)
  • String.prototype.isAlpha = function() {
  • return /^[A-Za-zÀÂÇÈÉÊËÎÔÙÛàâçèéêëîôùû\s]+$/.test(this);
  • }
  • // Caractères alphanumériques (+ accents + espaces)
  • String.prototype.isAlphaNum = function() {
  • return /^[\wÀÂÇÈÉÊËÎÔÙÛàâçèéêëîôùû\s]+$/.test(this);
  • }
  • // Caractères numériques (= nombre positif)
  • String.prototype.isNumeric = function() {
  • return /^\d+$/.test(this);
  • }
  • // La chaine représente un nombre (positif ou négatif)
  • String.prototype.isNumber = function() {
  • return /^[-]?\d+$/.test(this);
  • }
  • // La chaine n'est pas constituée que de caractères d'espacement
  • String.prototype.isNotEmpty = function() {
  • return !/^\s*$/.test(this);
  • }
  • // E-mail (vérifie juste que l'adresse est conforme puisque l'utilisateur peut toujours
  • // s'arranger pour donner une fausse adresse, ou une adresse temporaire...;-)
  • String.prototype.isEmail = function() {
  • return /^[\w\._]+@[\w]{2,}[.][A-Za-z]{1,6}$/.test(this);
  • }
  • // Numéro de téléphone (formats: 0NNNNNNNNN, 0N-NN-NN-NN-NN,
  • // 0N.NN.NN.NN.NN et 0N NN NN NN NN)
  • String.prototype.isNoTel = function() {
  • return /^(0\d{9)|(0\d[ \.-]\d{2}[ \.-]\d{2}[ \.-]\d{2}[ \.-]\d{2})$/.test(this);
  • }
  • // Numéro de sécu
  • String.prototype.isNoSecu = function() {
  • if (/^[12]\d{2}((1[0-2])|(0[1-9]))\d{10}$/.test(this)) {
  • var secu = parseInt(this.substring(0, 13));
  • var cle = parseInt(this.substring(13, 15));
  • return cle == (97 - secu % 97);
  • }
  • return false;
  • }
// FONCTIONS UTILES


// Complete une date pour qu'elle soit au format JJ/MM/AAAA
// 1.01.1, 1/1/01, 01-01-01, 010101, 01012001 donneront tous 01/01/2001
// dans le cas ou l'année n'est pas complétement renseignée, 
// celle-ci est déduite en fonction de l'année en cours 
// (ex: 2/12/54 -> 02/12/1954 et 2/12/4 -> 02/12/2004)
String.prototype.completeDate = function() {
    var chain = this;
    if (/^\d+$/.test(chain) && (6 == chain.length || 8 == chain.length))
        chain = chain.substring(0, 2) + "/" + chain.substring(2, 4) + "/" + chain.substring(4, chain.length);
    var reg = /^(\d{1,2})[\/\.\\-](\d{1,2})[\/\.\\-](\d{1,4})$/;
    if (reg.test(chain)) {
        chain = chain.replace(reg, "$1/$2/$3");
        var tab = chain.split("/");
        for (var i = 0; i < 2; i++)
            tab[i] = eval(tab[i]) > 9 ? tab[i] : "0" + eval(tab[i]);
        if (4 != tab[2].length) {
            var ObjetDate = new Date();
            var year = new String(ObjetDate.getFullYear());
            if (eval(tab[2]) > eval(year.substring(2,4)))
                year = eval(year.substring(0,2) - 1) + year.substring(2,4);
            tab[2] = year.substring(0, 4 - tab[2].length) + tab[2];
        }
        return  tab.join("/");
    }
    return chain;
}

// Remplace toutes les occurences d'une chaine
String.prototype.replaceAll = function(search, repl) {
    var str = this;
    while (str.indexOf(search) != -1)
       str = str.replace(search, repl);
    return str;
}

// Supprime les espaces de début et de fin de chaine
String.prototype.trim = function() {
    return this.replace(/(^\s*)|(\s*$)/g, "");
}


// VERIFICATION DE CHAINES DE CARACTERES

// Date au format JJ/MM/AAAA (à utiliser éventuellement avec completeDate())
// Vérifie si la date existe.
String.prototype.isDate = function() {
    if (/^\d{2}[\/]\d{2}[\/]\d{4}$/.test(this)) {
        var dat1 = this.split("/");
        var dat2 = new Date(dat1[2], dat1[1] - 1, dat1[0]);
        return (dat2.getDate() == dat1[0] && dat2.getMonth() == dat1[1]-1 && dat2.getFullYear() == dat1[2]);
    }
    return false;
}

// Caractères alphabétiques (accents pris en charge + espaces)
String.prototype.isAlpha = function() {
    return /^[A-Za-zÀÂÇÈÉÊËÎÔÙÛàâçèéêëîôùû\s]+$/.test(this);
}

// Caractères alphanumériques (+ accents + espaces)
String.prototype.isAlphaNum = function() {
    return /^[\wÀÂÇÈÉÊËÎÔÙÛàâçèéêëîôùû\s]+$/.test(this);
}

// Caractères numériques (= nombre positif)
String.prototype.isNumeric = function() {
    return /^\d+$/.test(this);
}

// La chaine représente un nombre (positif ou négatif)
String.prototype.isNumber = function() {
    return /^[-]?\d+$/.test(this);
}

// La chaine n'est pas constituée que de caractères d'espacement
String.prototype.isNotEmpty = function() {
    return !/^\s*$/.test(this);
}

// E-mail (vérifie juste que l'adresse est conforme puisque l'utilisateur peut toujours
// s'arranger pour donner une fausse adresse, ou une adresse temporaire...;-)
String.prototype.isEmail = function() {
    return /^[\w\._]+@[\w]{2,}[.][A-Za-z]{1,6}$/.test(this);
}

// Numéro de téléphone (formats: 0NNNNNNNNN, 0N-NN-NN-NN-NN, 
// 0N.NN.NN.NN.NN et 0N NN NN NN NN)
String.prototype.isNoTel = function() {
    return /^(0\d{9)|(0\d[ \.-]\d{2}[ \.-]\d{2}[ \.-]\d{2}[ \.-]\d{2})$/.test(this);
}

// Numéro de sécu
String.prototype.isNoSecu = function() {
    if (/^[12]\d{2}((1[0-2])|(0[1-9]))\d{10}$/.test(this)) {
        var secu = parseInt(this.substring(0, 13));
        var cle = parseInt(this.substring(13, 15));
        return cle == (97 - secu % 97);
    }
    return false;
}

 Conclusion

J'ai bien trouvé quelques fonctions un peu similaires sur ce site, mais elles n'étaient pas très satisfaisantes (J'en ai trouvé beaucoup du style "Usine à gaz"...). Ces fonctions n'étant pas très complexes à coder, je les ai donc écrites moi-même...


 Historique

10 mai 2006 19:52:39 :
suppression des &nbsp; dans le code

 Sources du même auteur

Source avec Zip Source avec une capture SIMPLEDATEFORMAT SIMILAIRE À LA CLASSE JAVA
CALCUL DE LA CLÉ RIB
REMPLACE LES CARACTÈRES AVEC ACCENT EN CARACTÈRES HTML
DEGRADE DE TEXTE 2 COULEURS
CONVERSION DECIMALE HEXADECIMALE

 Sources de la même categorie

Source avec Zip Source avec une capture FORMULAIRE TABLEAU par vic511
Source avec Zip Source avec une capture FORMULAIRE DYNAMIQUE par Niidhogg
Source avec Zip Source avec une capture CONTRAINTE DE SAISIE SUR CHAMPS INPUT par ryosama
SELECTS DÉPENDANTS PRÉ-CHARGÉS D'UNE SEULE OPTION par phm
Source avec Zip Source avec une capture BOITE DE DIALOGUE MODALE DE SÉLECTION D'UNE LISTE D'ICONES par JJDai

Commentaires et avis

Commentaire de trabi11fr le 25/05/2004 12:24:06

Merci pour toute ces fonctions qui peuvent effectivement être bien utile et sont simple à utiliser.

Commentaire de Bilou972 le 13/07/2005 16:38:34

Juste une petite correction, le motif du numero de téléphone etait incomplet ( accolade manquante )

// Numéro de téléphone (formats: 0NNNNNNNNN, 0N-NN-NN-NN-NN,
// 0N.NN.NN.NN.NN et 0N NN NN NN NN)
String.prototype.isNoTel = function() {
    return /^(0\d{9})|(0\d[ \.-]\d{2}[ \.-]\d{2}[ \.-]\d{2}[ \.-]\d{2})$/.test(this);
}

Commentaire de lara0o le 17/10/2005 19:50:18

Script tres tres interressant, tres pratique.

Juste une petite correction concernant le completeDate() : une toute petite erreur de '&nbsp;' s est reproduite 25 fois au moins (un copier-coller foireux?)
Voici la bonne fonction :

// Complete une date pour qu'elle soit au format JJ/MM/AAAA
// 1.01.1, 1/1/01, 01-01-01, 010101, 01012001 donneront tous 01/01/2001
// dans le cas ou l'année n'est pas complétement renseignée,
// celle-ci est déduite en fonction de l'année en cours
// (ex: 2/12/54 -> 02/12/1954 et 2/12/4 -> 02/12/2004)
String.prototype.completeDate = function() {
    var chain = this;
    if (/^\d+$/.test(chain) && (6 == chain.length || 8 == chain.length))
    chain=chain.substring(0,2)+"/"+chain.substring(2,4)+"/"+chain.substring(4,chain.length);
    var reg = /^(\d{1,2})[\/\.\\-](\d{1,2})[\/\.\\-](\d{1,4})$/;
    if (reg.test(chain)) {
        chain = chain.replace(reg, "$1/$2/$3");
        var tab = chain.split("/");
        for (var i = 0; i < 2; i++)
            tab[i] = eval(tab[i]) > 9 ? tab[i] : "0" + eval(tab[i]);
        if (4 != tab[2].length) {
            var ObjetDate = new Date();
            var year = new String(ObjetDate.getFullYear());
            if (eval(tab[2]) > eval(year.substring(2,4)))
                year = eval(year.substring(0,2) - 1) + year.substring(2,4);
            tab[2] = year.substring(0, 4 - tab[2].length) + tab[2];
        }
        return tab.join("/");
    }
    return chain;
}

Commentaire de pifou25 le 07/11/2007 10:36:46

Bonjour,
ça serait sympa d'ajouter une fonction de protection des chaines: en gros il suffit de remplaçer ' par \' puis " par \" et \ par \\
En tout cas il y a la fonction replaceAll() c'est déjà un grand pas :)

Commentaire de pifou25 le 07/11/2007 10:47:10

... en fait non ça marche pas, d'utiliser replaceAll pour ça car ça me fait une boucle infinie. ce qui est logique!

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales