Fonction : remplacer les carractères accentués par leur équivalent non accentués d'un texte gràce à strtr, fonction similair

Soyez le premier à donner votre avis sur cette source.

Snippet vu 18 609 fois - Téléchargée 17 fois

Contenu du snippet

Comme l'indique le titre, cette fonction permet la suppression des accents dans un texte. Je devais développer un site de e-commerce en ASP, et je ne connaissais que le php :) . J'ai donc reproduit la fonction strtr de PHP afin qu'elle puisse fonctionner avec ASP.

PS : Je suis ouvert à toutes critiques, mais soyez indulgent, j'ai commencé l'ASP y a deux semaines lol...

Source / Exemple :


'Fonction strtr similaire à celle de PHP
'Par Francis Hilaire
'http://www.prometee-creation.com
'@param1 => chaîne : chaîne à transformer
'@param2 => chaîne : chaîne de caractères à remplacer
'@param3 => chaîne : chaîne de caractères de remplacement

function strtr(chaine, strFrom, strTo)
	Dim c0, c1, i

	for i = 1 to len(strFrom)
		
		'récupération d'un caractère
		'de la chaîne strFrom à la
		'position i
		c0 = mid(strFrom, i, 1)
		
		'Si la longueur de la chaîne
		'strTo dépasse celle de strFrom
		'alors on remplace par rien
		if i > len(strTo) Then
			c1 = ""
		else
			c1 = mid(strTo, i, 1)
		end if
		
		'Remplacement des caractères
		'dans la chaîne de départ
		chaine = Replace(chaine, c0, c1)
		
	next
	
	'On renvoie la chaîne sans accents
	strtr = chaine
	
end function

'@param1 => chaîne : chaîne à transformer
'@return => chaîne : retourne la chaîne traduite
function removeAccents(chaine)
	Dim accent, noaccent

	accent   = "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ"
	noaccent = "AAAAAAACEEEEIIIIDNOOOOOOUUUUYbsaaaaaaaceeeeiiiidnoooooouuuyyby"
	
	removeAccents = strtr(chaine, accent, noaccent)

end function

Conclusion :


Son fonctionnement :

'chaîne à traduire :
chaine = "Cécile se promène à Orléans"
chaine = removeAccents(chaine)

'résultat : "Cecile se promene a Orleans"

Bon là c'est pas très parlant, mais cette source peut être utile dans le cas d'url rewriting par exemple où dans ce cas, on couplera cette fonction avec une autre qui enlève les caractères spéciaux et remplace les espaces par des tirets.

Ou encore dans le cas où on gère des fichiers et qu'il faut qu'ils soit bien formatés au niveau du nom...

A voir également

Ajouter un commentaire

Commentaires

cs_MrKhal
Messages postés
4
Date d'inscription
lundi 3 octobre 2005
Statut
Membre
Dernière intervention
8 janvier 2008

Super ton code !
ghuysmans99
Messages postés
2501
Date d'inscription
jeudi 14 juillet 2005
Statut
Contributeur
Dernière intervention
5 juin 2016
1
bravo!
TB_code
Messages postés
1
Date d'inscription
jeudi 26 juillet 2007
Statut
Membre
Dernière intervention
6 août 2007

ravi très interessant!!!
promeythey
Messages postés
7
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
6 août 2007

ça aurais été bien, mais je préfère séparer les fonctions pour pouvoir les réutiliser ailleurs...
ylomer
Messages postés
3
Date d'inscription
vendredi 7 mai 2004
Statut
Membre
Dernière intervention
6 août 2007

Super. ça va bien me servir. Seul petit hic : j'aurais fait une seule fonction au lieu de 2. fonction removeAccents avec dedans la boucle for i = 1 to len(accent)... puis if i > len(noaccent)... et enfin renvoie de la chaine résultat dans removeAccents. M'enfin rien n'est faux et ça va être utile.

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.