Prenez un projet, qui a pour particularité d'utiliser des TextField remplis de balises HTML pour renvoyer les utilisateurs vers les différentes rubriques du site.
var tf : TextField = addChild(new TextField()) as TextField;
var sText : String = "<a href='http://www.**.com/path/'>ma rubrique</a>";
tf.htmlText = sText;
Ajoutez à ça la volonté du client de passer tous ces textes en majuscule.
var tf : TextField = addChild(new TextField()) as TextField;
var sText : String = "<a href='http://www.**.com/path/'>ma rubrique</a>";
var sUpperText : String = sText.toUpperCase();
tf.htmlText = sUpperText;
Jusque-là rien de bien sorcier. Sauf qu'un beau matin de juillet vous recevez ce genre de message :
« Les liens vers les rubriques du site ** sont en majuscule. De ce fait, le navigateur ne trouve pas les pages concernées. Exemple : http://www.**.com/PATH/ Le lien devrait être simplement : http://www.**.com/path/ »
Après un grand moment de solitude, me voilà parti en quête d'une solution toute prête à l'emploi. Mais après plusieurs heures de recherche, j'ai bien dû me rendre à l'évidence qu'on n’était pas bien nombreux à avoir été confronté à ce problème.
Il ne restait plus qu'à se retrousser les manches.
Donc, avec l'aide de mon ami RegExp, il me fallait localiser l'URL dans la chaine et la passer en minuscule :
var tf : TextField = addChild(new TextField()) as TextField;
var sText : String = "<a href='http://www.**.com/path/'>ma rubrique</a>";
var sUpperText : String = sText.toUpperCase();
var url:RegExp = /href=.[^>]*/gi;
var sUpperTextAndURLLower : String = sUpperText.replace(url, function (m:String, ... rest):String {
return m.toLowerCase();
});
tf.htmlText = sUpperTextAndURLLower;
Tout ça pour dire que la recherche sur internet c'était bien mieux quand il y avait moins de monde dessus!
++
Laurent
Derniers commentaires