Hjälp med felmeddelande när man inte skriver ett tal i PHP

Permalänk
Medlem

Hjälp med felmeddelande när man inte skriver ett tal i PHP

Hej på er!

Jag har testat att göra en miniräknare i PHP och vill få upp ett felmeddelande när man fyller i något annat än siffror. Detta gick ju ganska enkelt genom att använda !is_numeric, men då släps inte heller decimaltal igenom oavsett om man anger talet med punkt eller komma. Någon som vet hur man kommer runt det? Har googlat en del, men hittar inget

Så här ser den delen av koden ut just nu:

elseif (!is_numeric($number1) || !is_numeric($number2)) { echo ("Du måste ange ett tal!"); }

Permalänk
Hedersmedlem
Skrivet av Märta:

Hej på er!

Jag har testat att göra en miniräknare i PHP och vill få upp ett felmeddelande när man fyller i något annat än siffror. Detta gick ju ganska enkelt genom att använda !is_numeric, men då släps inte heller decimaltal igenom oavsett om man anger talet med punkt eller komma. Någon som vet hur man kommer runt det? Har googlat en del, men hittar inget

Så här ser den delen av koden ut just nu:

elseif (!is_numeric($number1) || !is_numeric($number2)) { echo ("Du måste ange ett tal!"); }

is_numeric() ska släppa igenom med tal med punkt. Ref: http://php.net/manual/en/function.is-numeric.php

'42' is numeric '1337' is numeric '1337' is numeric '1337' is numeric '1337' is numeric '1337' is numeric 'not numeric' is NOT numeric 'Array' is NOT numeric '9.1' is numeric

Komma är jag lite osäker på. Antingen skulle du kunna skriva en regexp som tillåter det, eller konvertera komma till punkt?

Visa signatur

Dator, MOBO: Asus X99-A, CPU: Intel I7 6800k (3.4GHz), GPU: Geforce PNY 2070 Super, RAM: 4x8GB Corsair Vengeance LPX 2400MHz, OS-HDD: Intel 750 PCIe 400GB, PSU: EVGA SuperNOVA G2 850W

Permalänk
Medlem

Det är enligt specifikation så vill du använda numeric så får du kolla på skiljetecken och splita på det eller så gör du en regex som bara tillåter nummer och skiljetecken.

Permalänk
Medlem
Skrivet av Klorixx:

is_numeric() ska släppa igenom med tal med punkt. Ref: http://php.net/manual/en/function.is-numeric.php

'42' is numeric '1337' is numeric '1337' is numeric '1337' is numeric '1337' is numeric '1337' is numeric 'not numeric' is NOT numeric 'Array' is NOT numeric '9.1' is numeric

Komma är jag lite osäker på. Antingen skulle du kunna skriva en regexp som tillåter det, eller konvertera komma till punkt?

Skrivet av aluser:

Det är enligt specifikation så vill du använda numeric så får du kolla på skiljetecken och splita på det eller så gör du en regex som bara tillåter nummer och skiljetecken.

Konstigt testade med punkt innan och det funkade inte ,men nu fungerar det. Kör dock online och det uppdaterar lite segt ibland så kanske var det. Testade att göra som nedan och då godkänns komma, men den räknar som decimalen inte var där. Regex vet jag inte riktigt vad det är, men ska googla. Är nybörjare på det här! Får nog testa att konvertera komma till punkt. Tack så länge!

elseif (!is_numeric && !is_double($number1) || !is_numeric && !is_double($number2)) { echo ("Du måste ange ett tal!"); }

Permalänk
Medlem
Skrivet av Märta:

elseif (!is_numeric && !is_double($number1) || !is_numeric && !is_double($number2)) { echo ("Du måste ange ett tal!"); }

Säkert bara ett copy-paste-fel, men du saknar argument till funktionen is_numeric() i detta exemplet.

Skickades från m.sweclockers.com

Visa signatur

..:: RiJo ::..
Computer: Lenovo X300
Platform: Gentoo