Forum de discussion
Forum « Programmation ASP » (archives)
Re: fonction Replace et RegExp
Envoyé: 6 juillet 2004, 9h15 par Oznog
Tu peux ajouter plus d'un caractère mais il ne remplacera pas les caractères mais la chaîne trouvés au complet :
' Remplace tous les "Allo" par "Bonjour"
details2=replace(Request.Form("details"),"Allo","Bonjour")
Pour plusieurs remplacement tu le fais un à la suite de l'autre :
details2=replace(Request.Form("details"),"'","''")
details2=replace(details2,"""",""""")
details2=replace(details2,"`","'")
Note que le deuxième remplacement, utilise la source details2 et non plus Request.Form("details").
Mais j'aimerais bien savoir pourquoi, si on savait le contexte, et pourquoi exactement tu veux faire ça on aurait peut être une autre solution.
D'autre part, tu as aussi les expression régulière, plus complexe à manipuler mais très puissant. C'est par contre pas très utile pour remplacer un caractère. C'est plutôt pratique pour des remplacement complexe comme une chaîne entre deux chaîne spécifique ou autre circonstance très précise. JE ne peux pas t'expliquer ici, seulement les caractères réservé pour le "patern" prend plus d'une page, mais voilà la syntaxe de base :
' Création de l'objet
Set oRegExp = New RegExp
' Spécifier le "patern"
oRegExp.Pattern = patrn
' Exécute le remplacement sur une chaîne
sTemp = oRegExp.Replace(chaine1, chaineDeRemplacement)
"chaineDeRemplacement" peut contenir les variables $1 $2... qui corespondent aux "partern trouvé".
Voilà un exemple très simple :
<%
Dim sTemp, oRegExp
sTemp = "http://www.trucsweb.com"
Set oRegExp = New RegExp
With oRegExp
.Pattern = ".com" ' Le patern
.IgnoreCase = True ' pas de différence entre minuscule et majuscule
.Global = True ' Tout les "match" et non pas seulement le premier
End With
' Résultat http://www.trucsweb.net
Response.Write = oRegExp.Replace(sTemp, ".net")
Set oRegExp = nothing
%>
Maintenant toujours un exemple simple mais ou l'on peut voir toute la suptillité d'un "patern" :
<%
' Retourne Vrais ou Faux (true/false)
' si l'adresse est valide ou non
Dim oRegExp
Set oRegExp = new RegExp
oRegExp.pattern = "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$"
Response.Write oRegExp.Test("adresse@courriel.com")
Set oRegExp = nothing
%>
Ciao
Oznog
Réponses
|