Avatar billede tgl Nybegynder
09. januar 2005 - 15:53 Der er 12 kommentarer og
1 løsning

Søg og erstat i tekststreng

Jeg modtager en text fra et text-area som skal genneløbes for bl.a. tegnene "[" og "]".

De skal erstattes af "<" og ">".

Desuden skal text-strengen også undersøges for om der er tegn til f.eks. en smily, :-). Er der det skal der indsættes et link til det passende stykke grafik.


Vil helst have dette løst i vb-script.


Nogen som har en funktion som kan klare ovenstående????
Avatar billede carl_erik Nybegynder
09. januar 2005 - 16:44 #1
StrText = Request.Form("Textarea")
StrText = Replace(StrText,"[","<")
StrText = Replace(StrText,"]",">")
StrText = Replace(StrText,":-)","<img src=""smiley1.gif"">")
StrText = Replace(StrText,";-)","<img src=""smiley2.gif"">")
StrText = Replace(StrText,":-p","<img src=""smiley3.gif"">")
Avatar billede tgl Nybegynder
09. januar 2005 - 17:06 #2
Njaaa, lige ved og næsten.

Jeg har lavet denne funktion, men den retter kun på den ene kantede parates.

Hvorfor kan jeg ikke lige gennemskue.
----------------------------------------------------------
function KantetParantes(str)
If Instr(1,str,"[") > 0 then
  KantetParantes = Replace(str,"[","<")
elseIf Instr(1,str,"]") > 0 then
  KantetParantes = Replace(str,"]",">")
else
  KantetParantes = str
End if
End Function
----------------------------------------------------------
Avatar billede carl_erik Nybegynder
09. januar 2005 - 17:33 #3
se på denne artikkelen:
http://aspsidan.nu/default.asp?page=readArticle&menu=2&aId=146

Tror du burde bruke noe slikt istedet...
Avatar billede carl_erik Nybegynder
09. januar 2005 - 17:36 #4
Det er ikke VBscript,men ASP...
Avatar billede carl_erik Nybegynder
09. januar 2005 - 18:03 #5
function KantetParantes(str)
If Instr(1,str,"[") > 0 then
  Str = Replace(str,"[","<")
end if
If Instr(1,str,"]") > 0 then
  Str = Replace(str,"]",">")
end if
  KantetParantes = str
End Function


Forbedret funksjonen din....
Avatar billede tgl Nybegynder
09. januar 2005 - 18:17 #6
RegExp ser ud til at være en god løsning, men jeg kan trods artiklen du henviste til ikke få det til at virke.

Har det måske noget at gøre med at jeg afvikler mine ASP-sider på en PWS?
Avatar billede carl_erik Nybegynder
09. januar 2005 - 18:18 #7
det du må huske er at RegExp erstatter [i] med <i> og ikke bare [ med <

er det mulig å få se koden din?
Avatar billede tgl Nybegynder
09. januar 2005 - 18:25 #8
Her er funktionen :
---------------------------------------
function KantetParantes(str)

With New RegExp
 
  .Global=True
  .IgnoreCase=True

  .Pattern="\[strong\]([\w\W]*?)\[/strong\]"
  str=.Replace(str,"<b>$1</b>")

  .Pattern="\[i\]([\w\W]*?)\[/i\]"
  str=.Replace(str,"<i>$1</i>")

End With
End Function
--------------------------------------------------------

Og kaldet er på ASP-siden er : KantetParantes(str)
Avatar billede carl_erik Nybegynder
09. januar 2005 - 18:31 #9
Hmm...hadde selv litt problemer når jeg blandet function og regexp...
prøv  å sette inn regexp-koden hvor du vil ha den...uten å bruke function..kanskje det fungerer....den ser ut til å skulle fungere...
Avatar billede tgl Nybegynder
09. januar 2005 - 18:38 #10
ok, jeg prøver...
Avatar billede tgl Nybegynder
09. januar 2005 - 18:47 #11
Så, nu virker det!

RegExp skulle ind i selve koden og ikke i en function som du også nævnte.

Tak for hjælpen, der er point på vej.
Avatar billede carl_erik Nybegynder
09. januar 2005 - 18:50 #12
Takk...mine FØRSTE POENG:D:p
Avatar billede tgl Nybegynder
09. januar 2005 - 19:06 #13
Tillykke!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester