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

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

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.