05. juni 2007 - 18:54
Der er
11 kommentarer
Kun tal og bogstaver i streng.
Undskyld, jeg har ledt hele Eksperten igennem efter noget der kunne virke - men kan ikke få det til det. Jeg skal bruge en funktion der checker om bogstaver og tal findes. Den SKAL checke om de første 5 tegn er: "STEAM", og så skal den checke om der er mindst 6 tal i. Og strengen må ikke være mindre end: 14 tegn. Nogen der kan komme op med et forslag?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
$test = "STEAM123456afg"; if (preg_match("/^STEAM\d{6,}\D{3,}/i", $test)) { echo "Din string indeholder alle kriterier"; } else { echo "Fejl"; }
hmmm.... læste opgaven lidt forkert. Så kun dele af ovenstående er rigtigt. Kigger lige lidt mere på den og svarer :P
Nu er jeg ikke helt så god til regex som jeg gerne ville være, så det er muligt at det er muligt at lave det hele i en preg_match. Men nedenstående skulle kunne klare de ting du stillede op. $test = "STEAM1a2b3c4d5e6f"; $z = 0; for ($i=0; $i<strlen($test); $i++) { if(is_numeric(substr($test, $i, 1))) { $z++; } } if ((preg_match("/^STEAM/i", $test)) && ($z > 5) && (strlen($test) > 13)) { echo "rigtig"; } else { echo "forkert"; }
Hvis du har ctype() på din box/webhotel, så kig på: ctype_alnum()
Er det ikke preg_match("/STEAM_\d:\d:\d+/", $steamid) ? Altså, ID'erne ser sådan ud: STEAM_0:0:2512071 ikke?
Jeg mener du har ret coderdk, at det er sådan STEAM ID'erne ser ud jo.
Jeg stykkede lige det svar sammen 0xffff, og coderdk kom med - så det blev til: $steamid = $_POST[steamid]; $z = 0; for ($i=0; $i<strlen($steamid); $i++) { if(is_numeric(substr($steamid, $i, 1))) { $z++; } } if ((preg_match("/STEAM_\d:\d:\d+/", $steamid)) && ($z > 5) && (strlen($steamid) > 13)) { echo "rigtig"; } else { echo "forkert"; } Det virker. Smid et svar begge.
06. juni 2007 - 17:51
#10
super
06. juni 2007 - 18:36
#11
Har du prøvet med noget i stil med: if ( preg_match("/STEAM_\d:\d:\d{3,8}/", $steamid) ) { echo "rigtig"; } else { echo "forkert"; } Den godtager STEAM IDs i formatet STEAM_x:x:y hvor der kan være 1 x-tal og 3-8 y-tal, i.e. STEAM_0:1:234 og STEAM_0:1:23456789 vil være gyldige - Du kan selv justere {3,8} evt ;)
Vi tilbyder markedets bedste kurser inden for webudvikling