Hej <code> Nu löste det sig, fast jag vet inte om det är det bästa sättet men det verkar funka: Sorry, så här skall det vara: Hur funkar detta med VERSALER? Man är nog tyvär tvungen att göra som du skriver. Har lekt lite i vb. Kanske du kan ha någon nytta av. asp varianten av koden ser ut:replace
Detta är säkert jättelätt men ändå..
Om jag vill byta ut alla "å" till "a", "ä" till "a" och "ö" till "o" i en sträng.
Alltså härnösand skall bli harnosand osv..
hur gör jag då?
/Erik Sv: replace
Replace(Replace("minSträng"), "å", "a"), "ö", "o")
</code>
Hoppas det löser sig!Sv: replace
<code>
<%
city = Replace(city,"å","a")
city = Replace(city,"ä","a")
city = Replace(city,"ö","o")
%>
</code>
/ErikSv: replace
<code>
<%
Dim sMyString 'as String
sMyString = "Härnösånd" '--- testar med alla bokstäver
sMyString = Replace(Replace(Replace(sMyString, "ä", "a"), "ö", "o"), "å", "a")
%>
</code>Sv: replace
behöver man skriva:
<code>
sMyString = Replace(Replace(Replace(Replace(Replace(Replace(sMyString, "ä", "a"), "ö", "o"), "å", "a") , "Ä", "A"), "Ö", "O"), "Å", "A")
</code>
för att hantera detta eller hanteras detta automatiskt?Sv: replace
MAn kan få sökningen at bli okänslig för gemener och versaler. Men då kommer alla tecken bli små
<code>
Dim city
city = "HÄRNÖSÅND"
city = Replace(city,"å","a",,,vbTextCompare )
city = Replace(city,"ä","a",,,vbTextCompare )
city = Replace(city,"ö","o",,,vbTextCompare )
</code>Sv: replace
<code>
Option Explicit
Public Sub Test()
Dim Conversion(0 To &HFF) As String
Dim Index As Long
For Index = 0 To &HFF
Conversion(Index) = Chr$(Index)
Next
Conversion(196) = "A" 'Ä
Conversion(197) = "A" 'Å
Conversion(214) = "O" 'Ö
Conversion(228) = "a" 'ä
Conversion(229) = "a" 'å
Conversion(246) = "o" 'ö
Debug.Print ReplaceChars("härnösand", Conversion)
Debug.Print ReplaceChars("HÄRNÖSÅND", Conversion)
End Sub
Function ReplaceChars(Text As String, Conversion() As String) As String
Dim Index As Long
ReplaceChars = Text
For Index = 1 To Len(Text)
Mid(ReplaceChars, Index, 1) = Conversion(Asc(Mid(Text, Index, 1)))
Next
End Function
</code>Sv: replace
<code>
<%
Function ReplaceChars(Text, Conversion())
Dim Index
ReplaceChars = Text
For Index = 1 To Len(Text)
Mid(ReplaceChars, Index, 1) = Conversion(Asc(Mid(Text, Index, 1)))
Next
End Function
Dim Conversion(0 To &HFF)
Dim Index
For Index = 0 To &HFF
Conversion(Index) = Chr$(Index)
Next
Conversion(196) = "A" 'Ä
Conversion(197) = "A" 'Å
Conversion(214) = "O" 'Ö
Conversion(228) = "a" 'ä
Conversion(229) = "a" 'å
Conversion(246) = "o" 'ö
Response.Write ReplaceChars("härnösand", Conversion)
Response.Write ReplaceChars("HÄRNÖSÅND", Conversion)
%>
</code>
Jag vet inte om det är snabbare än att köra sex stycken replace. Kan vara så att VB scriptet är långsammare en replace funktioner pga att variablerna är variant.