Diverses petites functions en JavaScript

Voilà quelques javascript que j'ai fait pour diverses applications.

Vérifier une date (française)

Ce script nécessite une autre fonction qui vérifie que les valeurs entrées sont bien des numériques. Sinon il vérifié que la date est bien au format français (jj/mm/aaaa) et que la date existe bien.

Exemple :

CODE :

// Vérifie date
function checkDate(date) {

var date_array = date.split('/');

// les mois commence à partir de 0
var jour = date_array[0]*1;
var mois = date_array[1]*
1;
var annee = date_array[2]*
1;

if (
mois != "" && annee != "" && isNumeric(jour) && isNumeric(mois)
&&
isNumeric(annee)) {
// les mois commence à partir de 0
mois -= 1;

// on demande la date en question avec l'objet date et on demande une
// comparaison si c'est identique c'est que la date existe.
source_date = new Date(annee, mois, jour);

if(
annee != source_date.getFullYear()) return false;
if(
mois != source_date.getMonth()) return false;
if(
jour != source_date.getDate()) return false;

} else {
return false;
}

return true;
}

Vérifier un numéro de téléphone

Voilà un petit script pour vérifier un numéro de téléphone. C'est assez simple et cela ne vérifie que si celui ci est à 10 chiffres et qu'il commence bien par un zéro.

Exemple :

CODE :

// Vérifier un numéro téléphone
function checkTel(tel) {
var testvalide = new RegExp(/^0[1-9][0-9]{8}$/);
var correction = new RegExp("( |\\.)", "g");

// Définition de la variable booléenne match par défaut
var match = false;

// Test sur le motif
if(testvalide.test(tel.replace(correction, ''))) {
match = true;
}

// On renvoie match
return match;
}

Vérifier si une valeur est un nombre

Ce script permet que le nombre est bien un nombre. Il faudra que je l'améliore je pense, car cela ne gére que les nombres ayant un point.

Exemple :

CODE :

// Vérifie si la chaine est un nombre
function isNumeric(sText) {
if (sText == null || sText == "") return false;

var charValides = "0123456789.";
var isNumber = true;
var char;
var point = 0; // pout vérfier qu'il n'y qu'un seul point

for (i = 0; i < sText.length && isNumber == true; i++){
char = sText.charAt(i);
if (
charValides.indexOf(char) == -1) {
isNumber = false;
}
if (char == '.') {
point++;
if (point > 1)
isNumber = false;
}
}
return isNumber;
}

Calculer l'âge à partir d'une date

Ce petit script donne l'âge en année de la date à aujourd'hui. La date doit être au format français (jj/mm/aaaa). Il faut que la date soit bonne sinon les résultats ne seront pas cohérant (logique).

Exemple :

CODE :

function calculAge(date) {
var date_array = date.split('/');

// on récupérer un nombre anniversaire
var anniv = date_array[0]*1 + (date_array[1]*1 - 1)*100;
// puis l'année
var annee = date_array[2]*1;

// un petit différence entre l'année courant et l'année de la date
actu = new Date();
age = actu.
getFullYear() - annee;

// si la te anniversaire n'est pas passé on retranche une année
if (anniv > actu.getMonth()*100+actu.getDate()) {
age--;
}

return age;
}

Vérifier une adresse e-mail

On veut faire certainement beaucoup mieux. J'avais penser faire une expression régulière... mais je me suis rendu compte que c'est trop compliqué (et je n'y suis pas arrivé). Il y a trop de paramètres et encore j'en ai homis un paquet.

Exemple :

CODE :

function checkMail(mail) {
valide = false;

// on sépare le domaine et l'identiant
var f1 = mail.split('@');
// il faut que qu'il n'y ait que deux parties,
que la longeure de l'identifiant
// soit supérieux à 2, et que la l'identifiant ne commence par un nombre
if (f1.
length== 2 && f1[0].length > 2 && !isNumeric(f1[0].substr(0, 1))) {
// séparation du domaine
var f2 = f1[1].split('.');
// il ne doit y avoir que 2 ou 3 parties (3 pour les domaines en .co.jp
// par exemple) que la longeur du domaine soit supérieux
// à 0 et inférieur à 363,qu'il ne commence par un numérique, que
// l'« extensions » soit comprise entre 1 et 6 cractères
if ((f2.
length == 2 || f2.length == 3) &&
f2[0].length > 0 && f2[0].length <= 63 &&
!
isNumeric(f2[0].substr(0, 1)) &&
f2[f2.
length-1].length > 1 && f2[f2.length-1].length < 6) {
valide = true;
}
}
return valide;
}

2 comments posted

By Rob_Kenpachi, the 27/06/2008 at 03:15:48
# 1
By JOYSTICK, the 28/02/2010 at 15:30:53
Guest
# 2

Pas mal comme petite programmation ^^

Write a commentary