Hallo,

Ik ben bezig met een Handelen plugin voor mijn website.
Hoe kan ik controleren als een veld alleen uit cijfers en punten bestaat?

Ze kunnen alleen overmaken met 1 cijfer achter de punt.

1.1 punt en 1.2

Hoe kan ik contoleren dat ze alleen dat maar invullen en geen letters etc.

Dus 1 of 1.1

Wie kan mij verder helpen?

alvast bedankt.
[code]
<?php
$compare = '1.1';
$regex = '/^[0-9\.]+$/';
if (!preg_match($regex, $compare) {
echo 'plese insert a valid value';
}
else {
echo 'Thank you!!';
}
?>
Ger van Steenderen op 06/03/2012 21:30:20


<?php
$compare = '1.1';
$regex = '/^[0-9.]+$/'
if (preg_match($regex, $compare) {
	echo 'plese insert a valid value';
}
else {
	echo 'Thank you!!'
}
?>



Dit is dus alleen 1.1 punten? of zie ik dat verkeerd?

En checkt dit ook op - punten dus als een user bijvoorbeeld -1 ingeeft?

<?php
$regex = '^[\-+]?[0-9]*\.?[0-9]+$/';
$compare = '1.1';
if (!preg_match($regex, $compare) {
    echo 'please insert a valid value';
}
else {
    echo 'Thank you!!'
}
?>

Dit betekent dat een iemand altijd een waarde moet invullen zoals -0.33 dus dus niet -.33
Ger van Steenderen op 06/03/2012 22:11:22

<?php
$regex = '^[\-+]?[0-9]*\.?[0-9]+$/';
$compare = '1.1';
if (!preg_match($regex, $compare) {
    echo 'please insert a valid value';
}
else {
    echo 'Thank you!!'
}
?>

Dit betekent dat een iemand altijd een waarde moet invullen zoals -0.33 dus dus niet -.33


Hoe bedoel je precies?

Ik wil dat mensen alleen een normaal getal kunnen invullen. 1 of 1.1

niet 1.11 of -1

**Kan iemand mij hier antwoord op geven dan?

Kevin Blokzijl op 06/03/2012 22:57:53

[quote="Ger van Steenderen op 06/03/2012 22:11:22"]
<?php
$regex = '^[\-+]?[0-9]*\.?[0-9]+$/';
$compare = '1.1';
if (!preg_match($regex, $compare) {
    echo 'please insert a valid value';
}
else {
    echo 'Thank you!!'
}
?>

Dit betekent dat een iemand altijd een waarde moet invullen zoals -0.33 dus dus niet -.33


Hoe bedoel je precies?

Ik wil dat mensen alleen een normaal getal kunnen invullen. 1 of 1.1

niet 1.11 of -1


[/quote]

Bij $compare vul je de $_POST in.
<?php
$regex = '/^[1-9]{1,3}(\\.[0-9]{1})?$/';
?>

Deze regex doet wat jij wilt
Ger van Steenderen op 07/03/2012 13:11:01

<?php
$regex = '/^[1-9]{1,3}(\\.[0-9]{1})?$/';
?>

Deze regex doet wat jij wilt


Als ik nu 120 intyp geeft hij fout aan?
Kevin Blokzijl op 06/03/2012 21:31:25

[quote="Ger van Steenderen op 06/03/2012 21:30:20"]
...


Dit is dus alleen 1.1 punten? of zie ik dat verkeerd?

En checkt dit ook op - punten dus als een user bijvoorbeeld -1 ingeeft?


[/quote]

Kevin Blokzijl op 06/03/2012 22:57:53

[quote="Ger van Steenderen op 06/03/2012 22:11:22"]
...


Hoe bedoel je precies?

Ik wil dat mensen alleen een normaal getal kunnen invullen. 1 of 1.1

niet 1.11 of -1

**Kan iemand mij hier antwoord op geven dan?


[/quote]

Dit zijn twee tegenstrijdige posts. Wil je nu wel -1 of niet? Daarbij wat is de range? Wil je van 0 t/m 10? Met welke intervallen? Ik neem aan maximaal 1 getal achter de komma (punt). Wat versta jij onder een 'normaal getal'. Als je dit zou kunnen specificeren, is het makkelijker. Daarbij kun je je ook in reguliere expressies verdiepen. Want in de tijd dat je hebt gewacht had je zelf een reguliere expressie kunnen maken. Hiermee kun je realtime testen
Kevin Blokzijl op 10/03/2012 10:05:58

[quote="Ger van Steenderen op 07/03/2012 13:11:01"]
<?php
$regex = '/^[1-9]{1,3}(\\.[0-9]{1})?$/';
?>

Deze regex doet wat jij wilt


Als ik nu 120 intyp geeft hij fout aan?

[/quote]
Nope: {1,3} betekent dat er mininimaal 1 cijfer voor de punt moet staan en er mogen er maximaal 3 voor staan, dus 999.9 is valid

@Ger van Steenderen. 120 zal hij niet matchen, je specificeert namelijk met [1-9] dat er geen 0 in mag. Dus 120 kan niet. 121 daarentegen wel.

Reageren