webForumDet fria alternativet

Ersätta vissa tecken?

ASP

6 svar · 335 visningar · startad av Travoni

Medlem sedan okt. 20041 556 inlägg
Frågan#1

Hej igen

Jag vill ersätta alla tecken med accenter på detta sätt:
é blir e
à blir a
å blir a
ã blir a
ë blir e
ö blir o
ñ blir n

Jag kör ASP och mySql har sätt: CONVERT( _utf8 'Min text' USING latin1 ) men den plockar ju bort accenterna helt.
Måste jag skapa en egen funktion för detta?

Medlem sedan juni 20019 519 inlägg
#2

tyvärr ja... finns ingen sådan sak i ASP... går att göra "enklare" med regexp kanske

Function r(text)
  Set objRegExp = New regexp
  objRegExp.Global = true

  objRegExp.Pattern = "(é|è|ë)"
  text = objRegExp.Replace(text,"e")

  objRegExp.Pattern = "(à|å|ã)"
  text = objRegExp.Replace(text,"a")

  objRegExp.Pattern = "(ö)"
  text = objRegExp.Replace(text,"o")

  objRegExp.Pattern = "(ñ)"
  text = objRegExp.Replace(text,"n")

  r = text
end function
Medlem sedan okt. 20041 556 inlägg
#3

Oki, tack vad jobbigt.

Fråga 2.
hur tar jag bort dubbla tecken förutom a-z och 0-9
ex.

aa--z blir aa-z
uu__a blir uu_a
osv?

Medlem sedan juni 20019 519 inlägg
#4

kommer inte på någon optimal lösning men:

[^a-z0-9]([^a-z0-9])

och kör en replace på ""

Medlem sedan okt. 20041 556 inlägg
#5

Den där funkar inte alls men däremot: [^a-z0-9]
Varför den grupperade saken, med parentes?

Medlem sedan juni 20019 519 inlägg
#6

för du vill replace $1 egentligen med ""... därav anledningen...

Medlem sedan juni 20019 519 inlägg
#7
Function r(text)
  Set objRegExp = New regexp
  objRegExp.Global = true

  objRegExp.Pattern = "([^a-z0-9]){1,}"
  text = objRegExp.Replace(text,"$1")

  r = text
end function

borde fungera bäst? fast det klart.. då kan du inte ha _! exempelvis..

723 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
585 ms — hämta tråd, inlägg och bilagor (db)
134 ms — ändringar (db)