Avatar billede anderseiler Nybegynder
24. februar 2006 - 19:21 Der er 19 kommentarer og
1 løsning

Streng indeholder kun tal

Hvordan er det man checker, om en streng kun indeholder tal? Jeg kan simpelthen ikke huske det :)

Mvh
Anders
Avatar billede jackass- Nybegynder
24. februar 2006 - 19:28 #1
is_numeric() eller is_int()
Avatar billede erikjacobsen Ekspert
24. februar 2006 - 19:35 #2
is_int kan ikke bruges på en streng. is_numeric acceptere fortegn og exponentiel notation: +0123.45e6
Hvis spørgeren mener der kun må være cifre i strengen, skal der andre boller på suppen.
Avatar billede anderseiler Nybegynder
24. februar 2006 - 19:36 #3
Altså hvis $i = "1234abcd" skal den give fejl, men hvis den ikke indeholder bogstaver, skal den ikke give fejl... Ved ikke lige hvordan man gør det?
Avatar billede erikjacobsen Ekspert
24. februar 2006 - 19:38 #4
Der er vel forskel på "ikke indholder bogstaver" og så "kun indeholde tal". Hvad mener du, helt præcist??
Avatar billede jackass- Nybegynder
24. februar 2006 - 19:38 #5
Ellers er der nogle fine eksempler på http://dk.php.net/manual/da/function.is-numeric.php
Avatar billede Slettet bruger
24. februar 2006 - 19:38 #6
if(is_numeric($string)) {
return true;
} else {
return false;
}
Avatar billede jackass- Nybegynder
24. februar 2006 - 19:39 #7
anders: kig på preg_match() så
Avatar billede anderseiler Nybegynder
24. februar 2006 - 19:40 #8
Kun indeholde bogstaver :)

Kan godt forstå hvad du mener, erikjacobsen :)
Avatar billede erikjacobsen Ekspert
24. februar 2006 - 19:42 #9
"ikke indeholder bogstaver" "kun indeholde tal" "Kun indeholde bogstaver"  - jeg kan til gengæld ikke forstå dig. Vil du prøve at være præcis, så skal du nok få hjælp ;)
Avatar billede anderseiler Nybegynder
24. februar 2006 - 19:44 #10
Okay, jeg prøver...

Jeg skal have noget:

if($i kun indeholder tal)
{ noget
} else
{ noget andet
}

og så må $i jo være, hvad den nu end skal være... Er det godt nok forklaret? :P
Avatar billede erikjacobsen Ekspert
24. februar 2006 - 19:47 #11
nej, ikke for mig. Når du tal, mener du så cifre? Må der være fortegn? Eller decimalkomma eller punktum? Eller....
Avatar billede jackass- Nybegynder
24. februar 2006 - 19:48 #12
Tror han mener heltal.. altså "0" - "9"
Avatar billede jackass- Nybegynder
24. februar 2006 - 19:49 #13
"sdf,s.s.s" = ok
"sdf,s.s.s9" = ikke ok
Avatar billede anderseiler Nybegynder
24. februar 2006 - 19:49 #14
KUN: 0 1 2 3 4 5 6 7 8 9

Så mange af dem som du har lyst, bare det kun er ovenstående ti valgmuligheder strengen indeholder. I hvilken som helst rækkefølge, og i hvilket som helst antal, bare kun de ti tal/cifre/symboler... Bare kun de ti :) Heller ikke nogle komma eller punktummer (derfor heller ikke decimaltal osv).. hehe...

ok?
Avatar billede jackass- Nybegynder
24. februar 2006 - 19:50 #15
nej nu rabler jeg sq.. skal nok klappe i.. need sleep
Avatar billede erikjacobsen Ekspert
24. februar 2006 - 19:53 #16
det var præcist nok, stort set....

if (preg_match(/^[0-9]+$/,$dinstreng)) {
    // kun cifre
} else {
    // rod
}

Men "i hvilket som helst antal" - der bliver jeg nødt til at spørge om slet ingen tegn, tom streng, er ok også. 0 er også et slags antal. I løsningen ovenfor kræves mindst eet ciffer.
Avatar billede anderseiler Nybegynder
24. februar 2006 - 19:54 #17
Jeg har en anden if-sætning i forvejen som checker om feltet er tomt :)

Prøver det lige om 2 sek, sidder lige med noget andet :)

Men på forhånd mange tak :) Herfra ligner det en sikker løsning :)
Avatar billede anderseiler Nybegynder
24. februar 2006 - 22:06 #18
Det virkede (næsten) perfekt... Du mangler lige preg_match("/^[0-9]+$/",$dinstreng) de to " ", ellers giver den en fejl :) Tak for hjælpen, smid et svar erikjacobsen :)

Mvh
Anders
Avatar billede erikjacobsen Ekspert
25. februar 2006 - 08:14 #19
Ja, selvfølgelig (det skal man ikke i Perl - jeg blander dem bare sammen)
Jeg samler slet ikke på point, tak.
Avatar billede anderseiler Nybegynder
25. februar 2006 - 10:53 #20
Dig om det :)

Men i hvert fald, mange tak for hjælpen :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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