Avatar billede runberg Nybegynder
14. juni 2007 - 17:49 Der er 18 kommentarer og
1 løsning

Hvordan tjekker jeg indholdet af en string?

Hejsa

Jeg har en tekst streng, hvori jeg gerne vil tjekke hvorvidt den indeholder 'www', 'http' og 'href' (så brugere ikke kan indtaste hjemmeside adresser.

Hvad hedder kommandoen til at løbe tekst-strengen igennem??
Avatar billede w13 Novice
14. juni 2007 - 17:55 #1
Response.Write InStr([streng],[søgeord])
vil returnere det antal tegn inde i strengen, som søgeordet befandt sig. Er der intet fundet, vil det være lig 0.

http://www.2biaz.dk/diverse/aspfunctions/detaljer/#InStr
Avatar billede erikjacobsen Ekspert
14. juni 2007 - 17:55 #2
Avatar billede erikjacobsen Ekspert
14. juni 2007 - 17:56 #3
Men hvorfor må man ikke indtaste navnet på en hjemmeside?
Avatar billede magnusbm Nybegynder
14. juni 2007 - 18:06 #4
Hej jeg er en tolv årig dren som hedder magnus jeg tror jeg har fundet det du leder efter. Jeg ville tro du skulle bruge eregi(); funktionen.
Her er et eksempel med php:
<?php
$http = "http";
$www = "www";
$href = "href"
$streng = "Her er din streng med www, http eller href i.";
if(eregi($streng, $www) || eregi($streng, $http) || eregi($streng, $href))// Hvis der er 'www', 'http' eller 'href' så skriver den noget ud.
{
print 'Der er http, href eller www i din streng.';
}
else// Elers hvis de ikke er der så skriv noget andet ud.
{
print 'Der er ikke http, href eller www i din streng.';
}
?>
Kan du bruge dette eksempel?
Avatar billede runberg Nybegynder
14. juni 2007 - 18:28 #5
w13>> Lyder lidt som lige det jeg søgte. Korrekt at jeg kan bruge kommandoen således:

if inStr([streng],'www') > 0 then
  ' Kode der skal afvikles hvis der er www i teksten
else
  ' kode der skal afvikles hvis der ikke er www i teksten
end

?? - Hvis ja, så smid gerne et svar.

Årsagen til at jeg ikke vil tillade links, er at det er til en gæstebog, som pt. bliver spammet med alle mulige crap-links
Avatar billede erikjacobsen Ekspert
14. juni 2007 - 18:36 #6
Du skal overveje vbTextCompare så du får tjekket når der står "www" og "WWW"
Avatar billede runberg Nybegynder
14. juni 2007 - 18:41 #7
erikjacobsen>> God pointe - Hvordan ville jeg evt. kunne bygge dette ind i ovenstående if-sætning??

Er pt. lidt ude i noget med:

if inStr([streng],'www') > 0 or inStr([streng],'http') > 0 or inStr([streng],'href') > 0 then
  bla bla

- Men skal selvfølgelig så også tage højde for store og små bogstaver
Avatar billede w13 Novice
14. juni 2007 - 19:14 #8
Ja, det er korrekt!
Og med vbTextCompare så skal det bare være:

if inStr([streng],'www',1) > 0 or inStr([streng],'http',1) > 0 or inStr([streng],'href',1) > 0 then
Avatar billede w13 Novice
14. juni 2007 - 19:14 #9
Og svar! :)
Avatar billede runberg Nybegynder
19. juni 2007 - 16:09 #10
w13>> Undskyld mit sene svar, men har lige været på en forlænget weekend :o)

Du skriver er desværre ikke helt med på det der vbTextCompare?? - Kan ikke se at det indgår i den kodelinie du har skrevet??
Avatar billede runberg Nybegynder
19. juni 2007 - 16:13 #11
Ahhh ...

0 = vbBinaryCompare - Perform a binary comparison
1 = vbTextCompare - Perform a textual comparison
Avatar billede runberg Nybegynder
19. juni 2007 - 18:32 #12
Hmm ... Får nu følgende fejl:

Microsoft VBScript runtime error '800a000d'
Type mismatch: 'strMessage'

Min kode er som følger:

strMessage = server.HTMLEncode(Request.Form("messagefield"))
strMessage = Replace(strMessage, "'", "''")

IF inStr(strMessage,"www",1) > 0 or inStr(strMessage,"http",1) > 0 or inStr(strMessage,"href",1) > 0 THEN
...

Nogen gode ideer?
Avatar billede w13 Novice
19. juni 2007 - 19:08 #13
Hvis strMessage er tom kan der godt opstå problemer. Gives der ikke en fejllinje?
Avatar billede runberg Nybegynder
19. juni 2007 - 19:22 #14
strMessager er ikke tom. Har også tjekket ved bare at sætte strMessage = "test besked indeholdende www" med samme resultat.

Får kun fejlen Type mismatch: 'strMessage'
Avatar billede w13 Novice
19. juni 2007 - 19:49 #15
Så prøv først at fjerne:
strMessage = Replace(strMessage, "'", "''")
Og derefter:
IF inStr(strMessage,"www",1) > 0 or inStr(strMessage,"http",1) > 0 or inStr(strMessage,"href",1) > 0 THEN

For at finde ud af, hvor fejlen opstår.
Avatar billede runberg Nybegynder
19. juni 2007 - 20:07 #16
Ahh undskyld ... Mig der sover i timen. En fejl LINIE - Jo, sådan en får jeg, og fejllinien er

IF inStr(strMessage,"www",1) > 0 or inStr(strMessage,"http",1) > 0 or inStr(strMessage,"href",1) > 0 THEN
Avatar billede w13 Novice
19. juni 2007 - 20:48 #17
Det ser rigtigt ud.. Hvad hvis du fjerner alle ,1 ?
Avatar billede morhan Novice
19. juni 2007 - 20:55 #18
når du sætter compare-argumentet på, skal du angive start position

IF inStr(1,strMessage,"www",1) > 0 or inStr(1,strMessage,"http",1) > 0 or inStr(1,strMessage,"href",1) > 0 THEN
Avatar billede runberg Nybegynder
19. juni 2007 - 21:14 #19
Fantastisk! - Var der det skulle til.

Morhan>> Har desværre accepteret w13's svar, så kan ikke give dig andet end gode tanker!
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