webForumDet fria alternativet

Ersätta funktion!

ASP

11 svar · 269 visningar · startad av asp

Medlem sedan aug. 2002733 inlägg
Frågan#1

Hej!

Jag vill ha en function som ersätter vissa tecknen innan jag sparar ned dem i databasen.

function ersatta(str)
str = Replace(str,"ö","o")
str = Replace(str,"ä","a")
str = Replace(str,"å","a")
end function

namn = ersatta(Request.Form("namn"))
epost = ersatta(Request.Form("epost"))

Denna kod ovan fungerar ej. =(

Medlem sedan mars 20023 561 inlägg
#2
Function ersatta(str)
    str = Replace(str, "ö", "o")
    str = Replace(str, "ä", "a")
    ersatta = Replace(str, "å", "a")
End Function

namn = ersatta(Request.Form("namn"))
epost = ersatta(Request.Form("epost"))
Medlem sedan mars 20032 667 inlägg
#3
function ersatta(str)
str = Replace(str,"ö","o")
str = Replace(str,"ä","a")
str = Replace(str,"å","a")

[b]ersatta = str[/b]

end function
Medlem sedan aug. 2002733 inlägg
#4

Lite frågor:

1. Gör denna kod så att all html-kod skrivs ut som text förutom de jag vill ersätta?

Function ersatta(str)
    str = Replace(str, "[b]", "<b>")
    str = Replace(str, "[/b]", "</b>")
    str = Replace(str,"''","'")
    str = Replace(str,vbCrLf,"<br>")
    str = Server.HTMLEncode(str)
    str = ersatta
End Function

Sedan när jag vill spara ned så skriver jag detta under funktionen?

rubrik = ersatta(Request.Form("rubrik"))
datum = now()
skribent = ersatta(Request.Form("skribent"))
epost = ersatta(Request.Form("epost"))
hemsida = ersatta(Request.Form("hemsida"))
meddelande = ersatta(Request.Form("meddelande"))
catid = ersatta(Request.Form("catid"))

If Len("rubrik") > 0 Then
 SQL = "INSERT INTO Tradar (rubrik, datum, skribent, epost, hemsida, meddelande, catid) VALUES ('" & rubrik & "','" & datum & "','" & skribent & "','" & epost & "','" & hemsida & "','" & meddelande & "','" & catid & "')"
 objConn.Execute(SQL)
  Response.Write("<b>Sparat</b>")
End if
Medlem sedan mars 20032 667 inlägg
#5

Jag hade gjort replacen vid presentationen med undantag för escapesekvenserna. Sedan har du vänt nedanstående rad bak och fram:

str = ersatta

ska vara

ersatta = str

Medlem sedan aug. 2002733 inlägg
#6

Men i min replace blir ju **<b> och då räknas det som html kod och skrivs därför ut som text men det vill jag ju inte.

hur skall jag göra?**

Medlem sedan mars 20015 287 inlägg
#7

Flytta upp raden:

str = Server.HTMLEncode(str)

inne i din funktion.

Medlem sedan aug. 2002733 inlägg
#8

thanks. men hade redan gjort det. =)

Medlem sedan aug. 2002733 inlägg
#9

Om jag vill vill ignonera all html kod då? Inte skrica ut den som sträng bara ta bort?

Medlem sedan mars 20015 287 inlägg
#10

Regexp skulle jag tro, kanske ett mönster som plockar bort allt mellan < samt >.

Du bör nog kunna hitta något om du söker.

Medlem sedan aug. 2002733 inlägg
#11

Aha, var det så krångligt?

Kan man göra så att den endast visar A-Ö, a-ö samt "!","?" och "." .

Medlem sedan juli 200322 inlägg
#12

En variant är att köra ett reguljärt uttryck som plockar ut alla tecken utom dom tillåtna:
[^A-Z,a-z,!\?\.]

Du får sen ersätta dom med tomrum eller liknande.
Vet ej hur du får det att fungera med åäö men det kan säkert någon annan svara på.

263 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)