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
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
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.
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)
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());
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"); } } }
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
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"); } }
14. september 2003 - 17:54
#7
fantastisk, tak for hjælpen
14. september 2003 - 17:56
#8
repsak>> ja, så vil metoden returnere true, hvilket betyder at text'en er ulovlig ?
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 :-)
14. september 2003 - 18:03
#10
hov "xxx" = false (ikke ok)
14. september 2003 - 18:11
#11
repsak>> jeg tror bare jeg går iseng... ja, jeg har selvfølgelig misforståen din spm-tekst :/
14. september 2003 - 18:12
#12
hehe gonat :-)
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.