Avatar billede d.kryger Praktikant
31. oktober 2005 - 15:37 Der er 14 kommentarer og
2 løsninger

Tjekke om noget af variabel er tal

Hej eksperter.

Jeg har en variabel som ser sådan ud: $besked = "HSF 1000"; (hvor 1000 varierer fra besked til besked).

Hvordan tjekker jeg om 1000 er et tal?
Avatar billede jaw Nybegynder
31. oktober 2005 - 16:05 #1
F.eks.:

$besked = "HSF 1000";
preg_match("/\\d+/", $besked, $match);
echo $match[0];

Så får du tallet. Hvis du bare vil checke om tallet er i strengen, så:
if(preg_match("/\\d+/", $besked) {
  echo "Indeholder et tal";
} else {
  echo "Indeholder ikke et tal";
}
Avatar billede jakobdo Ekspert
31. oktober 2005 - 17:23 #2
Hvad med is_int() eller is_numeric()?
Avatar billede d.kryger Praktikant
31. oktober 2005 - 17:25 #3
Jeg ved ikke om det er mig der har formuleret mig forkert.
Men tegn 5-8 (som i eksemplet er 1000), SKAL være tal, hvis det er bogstaver skal der komme en anden tekst.
Avatar billede jaw Nybegynder
31. oktober 2005 - 17:29 #4
$besked = "HSF 1000";
if(is_numeric(substr($besked, 5)) {
  echo "Det er et tal";
} else {
  echo "Det er ikke et tal";
}

? :)
Avatar billede jakobdo Ekspert
31. oktober 2005 - 17:30 #5
Kan 1000 variere i længde?
F.eks. 10, 100000 eller vil det altid være 4 tal?
Avatar billede jaw Nybegynder
31. oktober 2005 - 17:34 #6
Hov, den skal lige være:
if(is_numeric(substr($besked, 4)) {
Avatar billede d.kryger Praktikant
31. oktober 2005 - 19:11 #7
Det vil altid være 4 tal...
Avatar billede jakobdo Ekspert
31. oktober 2005 - 19:19 #8
Så må jaw's løsning:
$besked = "HSF 1000";
if(is_numeric(substr($besked, 4, 4)) {
  echo "Det er et tal";
} else {
  echo "Det er ikke et tal";
}
Være den mest korrekte.
Bemærk jeg har tilføjet endnu et 4 tal, så den vil altid tage længden 4.
Avatar billede nielle Nybegynder
31. oktober 2005 - 19:27 #9
Mit bud:

if (preg_match("/^[^\d]{4}\d{4}$/, $besked))
    echo "Lovligt navn";
else
    echo "Ulovligt navn";

- og hvis tegn nr. 4 altid skal være et mellemrum (som i eksemplet):

if (preg_match("/^[^\d ]{3} \d{4}$/, $besked))
    echo "Lovligt navn";
else
    echo "Ulovligt navn";
Avatar billede d.kryger Praktikant
01. november 2005 - 12:56 #10
Jeg har brugt en blanding af jaw og jakobdo, læg et svar begge, og jeg fordeler pointene.
Avatar billede jakobdo Ekspert
01. november 2005 - 12:57 #11
Svar! (dog synes jeg nu Jaw fortjener flest)
Avatar billede jaw Nybegynder
01. november 2005 - 13:43 #12
Bare ud af nysgeerighed, hvad består blandingen i? :)

Og tak Jakob, god holdning !
Avatar billede d.kryger Praktikant
01. november 2005 - 13:45 #13
Det er tilmelding til noget SMS-service.
Avatar billede d.kryger Praktikant
01. november 2005 - 13:45 #14
Tak for hjælpen!
Avatar billede jakobdo Ekspert
01. november 2005 - 13:47 #15
Jeg tror jaw mente om han måtte se din endelige løsning.
Avatar billede jaw Nybegynder
01. november 2005 - 14:03 #16
Ja, det var det nu godt nok :)
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