(avec le regexp laid.)
exemple en JavaScript, en supposant que le manque d'espace avant la dernière 3ème exemple est une faute de frappe:
var testStrings = [
'First_name Middle_name Last_name',
'first_name middle_name last_name',
'First_name-Middle_name Last_name',
'first_name-middle_name last_name'
];
var re = /\b(\w)\w*\b(-?)\s*/g;
var mr;
for (var i = 0, l = testStrings.length; i < l; i++)
{
var name = testStrings[i];
var abbr = name.replace(re, function (match, ini, dash)
{
return ini.toUpperCase() + dash;
});
alert(abbr);
}
doit être facile à adapter à d'autres langues (?).
C'était une faute de frappe, et c'était ce que j'appelais un moyen facile! –
J'ai choisi votre exemple parce que je ne penserais jamais à traiter le tiret comme un seul mot. –