webForumDet fria alternativet

Funktion

ASPur ASP

7 svar · 293 visningar · startad av Rinaldo

Medlem sedan mars 20014 214 inlägg
Frågan#1

Om man ska göra en funktion där man ska ersätta varje tecken med någotting annat... hur är det smidigast att gå till väga då?

Genom en for slinga eller regular expressions...

Går det att göra med båda?

Medlem sedan feb. 20012 412 inlägg
#2

ska ersätta varje tecken

vidareutveckla gärna detta ;)

mvh Jörgen HP

Medlem sedan mars 20014 214 inlägg
#3

Jag kommer alltså ha en string med kanske en mening och alla olika tecken i den kommer jag vilja ersätta med andra tecken, bilder eller dylikt.

Hur gör jag detta lättast...

Medlem sedan feb. 20012 412 inlägg
#4

typ så här?

Function bytaTecken(txt)
txt = Replace(txt, "a", "<img src=""bild_a.gif"">")
txt = Replace(txt, "b", "<img src=""bild_b.gif"">")
bytaTecken = txt
End Function
Medlem sedan mars 20014 214 inlägg
#5

Ja typ sådär, fast jag vill inte hålla på att byta ut alla, var för sig...

		strString = "A"
		
		set objRE = New RegExp
		objRE.Global = True
		objRE.IgnoreCase = True
		
		objRE.Pattern = "(A)" 
		strString = objRE.Replace(strString, "<img src=$1.gif>")
		response.write strString

Om jag gör det med regexps, hur kan man då göra för att bara behöva använda en eller kanske några replace å ändå ersätta alla med bilder eller någoting annat...?

(koden bara skriven ur huvet så det är säkert något fel)

R: Om jag bara sätter en . i pattern så skriver den väl ut alla tecken och bilder, men hur gör jag då med radmatningar och mellanslag?

		strString = "A"
		
		set objRE = New RegExp
		objRE.Global = True
		objRE.IgnoreCase = True
		
		objRE.Pattern = "(.)" 
		strString = objRE.Replace(strString, "<img src=$1.gif>")
		response.write strString
Medlem sedan dec. 200012 464 inlägg
#6

Vilka tecken vill du byta ut?

Om det är A-Z och a-z så

function repl(string)
dim letter
if len(string) > 0 then
   letter = ucase(left(string,1))
   if  letter >= "A" and letter <= "Z" then
       repl = "<img src=" & letter & ".gif>" & repl(mid(string,2))
   else
       repl = letter & repl(mid(string,2))
   end if
else
   repl = ""
end if
end function
Medlem sedan mars 20014 214 inlägg
#7

Tack! Det där verkar bra!

Det kommer vara A-Ö plus en del special tecken...

Två frågor.

  • Fungerar detta om det är radbrytningar?
  • Går det att anpassa så att det blir olika när det är stora respektive små bokstäver?
Medlem sedan dec. 200012 464 inlägg
#8

Radbrytningar har ingen betydelse

Om du vill skilja på små och stora kan du lägga till fler if (du måste ha något prefix på för att skilja på filerna.)

function repl(string)
dim letter
if len(string) > 0 then
   letter = left(string,1)
   if  (letter >= "A" and letter <= "Z") _
   or (letter = "Å" or letter = "Ä" or letter = "Ö" )  then
       repl = "<img src=" & letter & ".gif>" & repl(mid(string,2))
   elseif (letter >= "a" and letter <= "z" )_
   or (letter = "å" or letter = "ä" or letter = "ö" )  then
      repl =  "<img src=" & letter & "s.gif>" & repl(mid(string,2))
   elseif letter = "?" or letter = "?" or letter = "?" then
      repl =  "<img src=" & "?" & "s.gif>" & repl(mid(string,2))
   else
       repl = letter & repl(mid(string,2))
   end if
else
   repl = ""
end if
end function
137 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
125 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)