Soyez le premier à donner votre avis sur cette source.
Snippet vu 14 192 fois - Téléchargée 28 fois
// 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; }
ç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 :)
Juste une petite correction concernant le completeDate() : une toute petite erreur de ' ' 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;
}
// 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);
}
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.