calvados-fonctions
Version:
Librairie de fonctions réutilisables
69 lines (60 loc) • 1.95 kB
JavaScript
;
var getTextualDay = function(day) {
var days = ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"];
return days[day];
};
var getTextualMonth = function(month) {
var months = ["janvier", "fevrier", "mars", "avril", "mai", "juin", "juillet", "aout", "septembre", "octobre", "novembre", "decembre"];
return months[month];
};
var groupBy = function(xs,key) {
return xs.reduce(function(rv, x) {
(rv[x[key]] = rv[x[key]] || []).push(x);
return rv;
}, {});
};
var dateFr = function (date, format) {
var dateArray = new Date(date).toISOString().slice(0,10).split("-");
var annee = dateArray[0];
var mois = dateArray[1];
var jour = dateArray[2];
switch(format) {
case "JJ-MM-AAAA":
return jour+"-"+mois+"-"+annee;
case "JJ/MM/AAAA":
return jour+"/"+mois+"/"+annee;
case "chaine":
return jour + " " + getTextualMonth(mois-1) + " " + annee;
default:
return jour+"/"+mois+"/"+annee;
}
};
var mod = function(s,x) {
var checksum = s.slice(0, 2), fragment;
for (var offset = 2; offset < s.length; offset += 7) {
fragment = String(checksum) + s.substring(offset, offset + 7);
checksum = parseInt(fragment, 10) % x;
}
return checksum;
};
var checkIBAN = function(iban) {
var s = "";
var b = iban.toUpperCase();
var ib = b.substr(4) + b.substr(0,4);
for (var i = 0; i < ib.length; i++) {
if(ib.charAt(i).length === 1 && ib.charAt(i).match(/[a-z]/i))
s += ib.charCodeAt(i)-55;
else
s += ib.charAt(i);
}
return mod(s,97) === 1;
};
var fn = {
getTextualDay: getTextualDay,
getTextualMonth: getTextualMonth,
groupBy: groupBy,
dateFr: dateFr,
mod: mod,
checkIBAN: checkIBAN
};
module.exports = fn;