[PHP] variabele controleren op inhoud *

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • urf
  • Registratie: September 2001
  • Niet online
Ik wil bij de variabele $geld (een geldbedrag dus) zorgen dat er alleen geldige waardes mogen worden ingevoerd. Dit houdt in: getallen, max 2 getallen achter de komma of de punt. Geen letters en andere tekens dan punt en komma.

Dit wilde ik doen met een if statement.

Maar zelf kom ik niet verder dan

code:
1
if($geld > 0 AND $bod < a)


Dit is natuurlijk lang niet genoeg, zou iemand mij kunnen vertellen hoe ik dit moet doen? Misschien een voorbeeld?

[ Voor 10% gewijzigd door urf op 12-03-2004 14:19 ]


Acties:
  • 0 Henk 'm!

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 19:10

Robtimus

me Robtimus no like you

Zoek eens naar reguliere expressies, daarmee kun je precies bepalen hoe je invoer eruit moet zien.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Acties:
  • 0 Henk 'm!

  • urf
  • Registratie: September 2001
  • Niet online
IceManX schreef op 12 maart 2004 @ 14:02:
Zoek eens naar reguliere expressies, daarmee kun je precies bepalen hoe je invoer eruit moet zien.
Snap echt geen fuck daar van eigenlijk, ben ook nog maar een beginnner :)

Heb je niet toevallig een voorbeeld voor deze situatie? Dan kan ik weer verder :)

Acties:
  • 0 Henk 'm!

Verwijderd

if ( preg_match ( '/^\d+([,.]\d{1,2})?$/', $input ) ) {
// input voldoet aan patroon
}

Dit betekent min of meer:
De input moet bestaan uit minimaal 1 cijfer, gevolgd door eventueel (een punt of een komma gevolgd door 1 of 2 cijfers)

[ Voor 8% gewijzigd door Verwijderd op 13-03-2004 14:05 . Reden: ^ en $ vergeten (en een typo idd) ]


Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

Met de functie preg_match kun je een reguliere expressie controleren.
http://nl.php.net/manual/en/function.preg-match.php

http://www.sitemasters.be...p?action=php&pagina=regex

[ Voor 117% gewijzigd door dArtagnan op 12-03-2004 14:27 ]


Acties:
  • 0 Henk 'm!

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 19:10

Robtimus

me Robtimus no like you

Eerst maar eens aangeven in welke taal je werkt. PHP?

Zoja, kijk dan maar eens naar http://nl.php.net/manual/nl/ref.pcre.php, vooral naar http://nl.php.net/manual/nl/pcre.pattern.syntax.php, http://nl.php.net/manual/nl/function.preg-match.php en de gebruikers links eronder.

Tip: om te controleren of een string volledig voldoet aan een regex, begin de regex met ^ en eindig met $.

Jouw regex is dus iets als
^\-?\d+([\.,]\d{1,2})?$

Uitleg:
^: begin van de string
\-?: 0 of 1x een streepje
\d+: minimaal 1x een getal
([\.,]\d{1,2})?: 0 of 1x het volgende: een , of . , gevolgd door 1 of 2 getallen
$: het einde van de string

(ik heb vast wel een foutje gemaakt, maar als je het zelf even goed doorleest verzin je het zelf wel)
of geen foutje, want op de \-? na heeft Cheatah hetzelfde. Dan ben ik beter dan ik dacht :P

[ Voor 6% gewijzigd door Robtimus op 12-03-2004 14:32 ]

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Acties:
  • 0 Henk 'm!

  • urf
  • Registratie: September 2001
  • Niet online
Verwijderd schreef op 12 maart 2004 @ 14:23:
if ( pref_match ( '/^\d+([,.]\d{1,2})?$/', $input ) ) {
// input voldoet aan patroon
}

Dit betekent min of meer:
De input moet bestaan uit minimaal 1 cijfer, gevolgd door eventueel (een punt of een komma gevolgd door 1 of 2 cijfers)
Dankje!! Hij werkt echt perfect!! Alleen zit er een typfout in (moet zijn preg_match ipv pref_match).

Maar bedankt!! _/-\o_

Acties:
  • 0 Henk 'm!

  • urf
  • Registratie: September 2001
  • Niet online
Bedankt voor de link :) Heb ik weer wat te doen :P

Acties:
  • 0 Henk 'm!

  • urf
  • Registratie: September 2001
  • Niet online
IceManX schreef op 12 maart 2004 @ 14:31:
Eerst maar eens aangeven in welke taal je werkt. PHP?

Zoja, kijk dan maar eens naar http://nl.php.net/manual/nl/ref.pcre.php, vooral naar http://nl.php.net/manual/nl/pcre.pattern.syntax.php, http://nl.php.net/manual/nl/function.preg-match.php en de gebruikers links eronder.

Tip: om te controleren of een string volledig voldoet aan een regex, begin de regex met ^ en eindig met $.

Jouw regex is dus iets als
^\-?\d+([\.,]\d{1,2})?$

Uitleg:
^: begin van de string
\-?: 0 of 1x een streepje
\d+: minimaal 1x een getal
([\.,]\d{1,2})?: 0 of 1x het volgende: een , of . , gevolgd door 1 of 2 getallen
$: het einde van de string

(ik heb vast wel een foutje gemaakt, maar als je het zelf even goed doorleest verzin je het zelf wel)
Heb inmiddels de oplossing, maar toch bedankt :>

Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

Lees even stickies en zo mbt topicstart en topictitel aub :)

Professionele website nodig?


Acties:
  • 0 Henk 'm!

  • urf
  • Registratie: September 2001
  • Niet online
curry684 schreef op 12 maart 2004 @ 14:35:
Lees even stickies en zo mbt topicstart en topictitel aub :)
Ach, ik zat in de buurt toch? :+

Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Verwijderd schreef op 12 maart 2004 @ 14:23:
if ( pref_match ( '/^\d+([,.]\d{1,2})?$/', $input ) ) {
// input voldoet aan patroon
}
Moet die punt hier niet geescaped worden?

Net zoals IceManX heeft dus :)

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

Verwijderd

Michali schreef op 13 maart 2004 @ 13:49:

Moet die punt hier niet geescaped worden?

Net zoals IceManX heeft dus :)
Nee
Pagina: 1