Avatar billede n-emy Nybegynder
21. august 2005 - 17:53 Der er 15 kommentarer og
1 løsning

Få et script til at se om det er et tal?

Hey,

Jeg ville høre hvordan man får php til at se om det er et tal der er skrevet i et tekstfelt.

F.eks hvis man skal skriver et tal i et tekstfelt og poster det så skriver den:

Du må ikke bruge tal.

Er der nogen der kan hjælpe?
Avatar billede dennism Nybegynder
21. august 2005 - 18:04 #1
is_int();
Avatar billede dennism Nybegynder
21. august 2005 - 18:06 #2
if (is_int($myvar)) {
  echo"<li>Du må ikke bruge tal";
}
Avatar billede thesurfer Nybegynder
21. august 2005 - 18:13 #3
Du skal enten bruge RegExp, eller checke hvert eneste tegn i variablen.

Med is_int, vil den sige at "123" er et tal, og at "a123" ikke er et tal (dvs, accepteret".

/theSurfer
Avatar billede jakobdo Ekspert
21. august 2005 - 18:30 #4
is_numeric()
Avatar billede jakobdo Ekspert
21. august 2005 - 18:33 #5
$match = "A-Za-z_-";
if (preg_match('/^[$match]+$/', $ditTekstFelt))
{
echo "Den er ok";
}
Avatar billede Slettet bruger
21. august 2005 - 19:00 #6
$string = "he2";
if (eregi("[0-9]", $string)) {
    // den indeholder tal
} else {
    // indeholder ikke tal
}
Avatar billede n-emy Nybegynder
21. august 2005 - 19:04 #7
Kunne kun få jakobdos til at virke, svar tak?
Avatar billede jakobdo Ekspert
21. august 2005 - 19:07 #8
Du skal så huske at match skal indeholde alle de værdier som tekst-feltet gerne må indeholde.

Og her et svar!
Avatar billede Slettet bruger
21. august 2005 - 19:07 #9
Hvis du ikke har kunnet få andre til og virke, er der noget galt med din computer.
Avatar billede jakobdo Ekspert
21. august 2005 - 19:16 #10
Eller server...

Du kan også rette min, så den bliver lidt ala Gangso's:

if (preg_match('/[0-9]/', $ditTekstFelt))
{
echo "Indeholdet tal, det er skidt";
}
else
{
echo "Ingen tal, vi fortsætter";   
}
Avatar billede Slettet bruger
21. august 2005 - 19:59 #11
is_int vil aldrig virke på brugerinput, da det _altid_ er en streng.

Det eneste rigtige, og sandsynligvis også mest korrekte, er is_numeric - eller jakobdo's sidste forslag, der er en del langsommere end is_numeric, men virker ligeså godt.
Avatar billede jakobdo Ekspert
21. august 2005 - 20:21 #12
Men wicez, is_numeric vil jo ikke finde om der er tal i en streng.
F.eks. abc er jo ok for brugeren.
Men han/hun ønsker ikke abc123.
is_numeric vil returnere false på begge.
Derfor er regexp vejen ud.
Eller man kan gennemløbe hele strengen og teste om der er tale om et tal eller ej.
Avatar billede Slettet bruger
21. august 2005 - 20:31 #13
fandens at jeg går galt af spørgsmålet så :)
Avatar billede jakobdo Ekspert
21. august 2005 - 20:35 #14
Tag det ikke så tungt, jeg læste også spørgsmålet den vej første gang.
Avatar billede Slettet bruger
21. august 2005 - 20:43 #15
Jep, det tror jeg alle gjorde ;o)

Men det undrer mig lidt, at der kom så mange forslag med is_int.
Avatar billede Slettet bruger
21. august 2005 - 20:44 #16
Selvom dit sidste svar opfylder n-emy's krav 100%, vil jeg tro at han leder efter din første RegExp løsning.
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