23. august 2003 - 15:01
Der er
16 kommentarer og 1 løsning
check om variabel indeholder
Hvordan checker man om en variabel indeholder a-z evt 0-9 og æøå?
Annonceindlæg fra Barco
23. august 2003 - 15:03
#1
Det gør ud med Reg. Exp! //>Rune
23. august 2003 - 15:05
#2
Kan du give et eksempel?
23. august 2003 - 15:16
#3
Hvis det er så simpelt som du beskriver kan IndexOfAny bruges. Eksempel: using System; class MainClass { public static void Main(string[] args) { Console.WriteLine(HasABC("Arne")); Console.WriteLine(HasABC("V")); } private static char[] xc = { 'A', 'B', 'C' }; public static bool HasABC(string s) { return (s.IndexOfAny(xc) >= 0); } } Hvis det er mere komplekst hænger du nok på regular expressions.
23. august 2003 - 15:27
#4
Samme kode også med regular expression: using System; using System.Text.RegularExpressions; class MainClass { public static void Main(string[] args) { Console.WriteLine(HasABC("Arne") + " " + HasABCadv("Arne")); Console.WriteLine(HasABC("V") + " " + HasABCadv("V")); } private static char[] xc = { 'A', 'B', 'C' }; public static bool HasABC(string s) { return (s.IndexOfAny(xc) >= 0); } public static bool HasABCadv(string s) { return Regex.Match(s, "[A-C]").Success; } }
23. august 2003 - 15:48
#5
Takker lige hvad jeg skulle bruge! Kender du evt. en webside hvor man kan se alle de der kommandoer som Regex.Match?
23. august 2003 - 15:52
#6
Når du installerer .NET SDK får du en online dokumentation som indeholder al den information. [og ja der er så mange pakker og klasser, at det kan være svært at overskue dem]
23. august 2003 - 15:58
#7
Okay tak endnu en gang :-)
23. august 2003 - 16:06
#8
For at finde den her: Microsoft .NET Framework SDK 1.1 Documentation .NET Framework SDK Referemce Class Library System.Text.RegularExpressions Regex Class Methods Match
23. august 2003 - 18:11
#9
Jeg har lige fået en andet problem. Hvis variablen er f.eks. "a" så bliver den ikke accepteret men hvis den er f.eks. "3a" så bliver den accepteret. if ( Regex.Match(textBox.Text, "[0-9]").Success ) {
23. august 2003 - 18:13
#10
3a indholder et af tegnene 0-9 og derfor returnerer den true. Skal du have et test på om det kun er tegenene 0-9 ?
23. august 2003 - 18:17
#11
Ja
23. august 2003 - 18:24
#12
OK - her er en udvidet version: using System; using System.Text.RegularExpressions; class MainClass { public static void Main(string[] args) { test("A"); test("Arne"); test("V"); test("AB"); test("VA"); } private static void test(string s) { Console.WriteLine(s + " " + HasABC(s) + " " + HasABCregexp(s) + " " + IsAllABC(s)); } private static char[] xc = { 'A', 'B', 'C' }; public static bool HasABC(string s) { return (s.IndexOfAny(xc) >= 0); } public static bool HasABCregexp(string s) { return Regex.IsMatch(s, "[A-C]"); } public static bool IsAllABC(string s) { return s.Equals(Regex.Match(s,"[A-C]*").Value); } }
23. august 2003 - 18:25
#13
Jeg bruger stadigvæk A-C, men det er jo nemt og rette til 0-9. * betyder 0-mange
23. august 2003 - 18:27
#14
Ja - og så opdagede jeg at Match().Success kunne laves mere elegant med IsMatch().
23. august 2003 - 18:53
#15
Yesh nu virker mit meget simple regneprogram som det skal :-) evt. (* betyder 0-mange) ???
23. august 2003 - 19:12
#16
* betyder 0-mange forekomster af det i parenteserne. + betuder 1-mange.
23. august 2003 - 19:18
#17
Ahh på den måde..
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.