Avatar billede repsak Nybegynder
14. september 2003 - 17:22 Der er 11 kommentarer og
1 løsning

Kontrollere tags

Jeg skal i forbindelse med en asp.net applikation kontrollere en textbox for html tags. Hvordan kontrollerer jeg det så f.eks. kun <b> og </b> er tilladt?
Altså en metode som returnerer true på 1) ren tekst eller 2) ren tekst med de to ovennævnte tags, og false hvis f.eks. <u> indgår
Avatar billede odegaard Nybegynder
14. september 2003 - 17:28 #1
Har du forsøgt dig med regular expressions? Jeg er ikke lige en haj til at opbygge dem, men de kan ihvertfald gøre lige præcis dette.
Avatar billede repsak Nybegynder
14. september 2003 - 17:30 #2
nææh, det kan godt være at jeg skal der over af (pis håbede at jeg kunne undgå det, for jeg er superelendig til det)
Avatar billede burningice Nybegynder
14. september 2003 - 17:34 #3
bool DoesContain(string text, string search) {
  int index = text.IndexOf(search);

  if (index > -1) {
      return true;
  } else {
      return false;
  }
}

string text = "hej med dig";

Response.Write("Indeholder følgende text <b>, "+ text +" ? :"+ DoesContain(text, "<b>").ToString());
Avatar billede arne_v Ekspert
14. september 2003 - 17:35 #4
using System;
using System.Text.RegularExpressions;

class MainClass
{
        public static void Main(string[] args)
        {
                test("xxx");
                test("xxx<b>xxx</b>xxx");
                test("xxx<u>xxx</u>xxx");
        }
        private static void test(string s)
        {
                if(!Regex.IsMatch(s,"\\<[^\\>]*\\>") ||
                  Regex.Match(s,"\\<[^\\>]*\\>").Value.Equals("<b>"))
                {
                    Console.WriteLine(s + " is OK");
                }
                else
                {
                    Console.WriteLine(s + " is not OK");
                }
        }
}
Avatar billede repsak Nybegynder
14. september 2003 - 17:43 #5
cyberfessor -> din metode kontrollerer om en given text findes i en anden, men hvis jeg skriver
string text = "hej <b>med</b> dig<br />";
så vil metoden da returnere true selvom det er en "ulovlig" input
Avatar billede arne_v Ekspert
14. september 2003 - 17:49 #6
Min har samme problem.

Men her er en forbedret udgave:

using System;
using System.Text.RegularExpressions;

class MainClass
{
        public static void Main(string[] args)
        {
            test("xxx");
            test("xxx<b>xxx</b>xxx");
            test("xxx<u>xxx</u>xxx");
            test("xxx<b>xxx</b>xxx<u>xxx</u>xxx");
        }
        private static void test(string s)
        {
              MatchCollection res = Regex.Matches(s,"\\<[^\\>]*\\>");
            for(int i = 0; i < res.Count; i++) {
                if(!res[i].Value.Equals("<b>") && !res[i].Value.Equals("</b>"))
                {
                    Console.WriteLine(s + " is not OK");
                    return;
                }
            }
              Console.WriteLine(s + " is OK");
        }
}
Avatar billede repsak Nybegynder
14. september 2003 - 17:54 #7
fantastisk, tak for hjælpen
Avatar billede burningice Nybegynder
14. september 2003 - 17:56 #8
repsak>> ja, så vil metoden returnere true, hvilket betyder at text'en er ulovlig ?
Avatar billede repsak Nybegynder
14. september 2003 - 18:02 #9
cyberfessor -> nej, for <b> er lovlig
arnev_'s eksempel med din metode:
"xxx" = true (ok)
"xxx<b>xxx</b>xxx" = true (ok)
"xxx<u>xxx</u>xxx" = false (ok)
"xxx<b>xxx</b>xxx<u>xxx</u>xxx" = true (ikke ok)

den kontrollerer jo ikke hvad der sker efterfølgende :-)
Avatar billede repsak Nybegynder
14. september 2003 - 18:03 #10
hov
"xxx" = false (ikke ok)
Avatar billede burningice Nybegynder
14. september 2003 - 18:11 #11
repsak>> jeg tror bare jeg går iseng... ja, jeg har selvfølgelig misforståen din spm-tekst :/
Avatar billede repsak Nybegynder
14. september 2003 - 18:12 #12
hehe gonat :-)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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