Controleren op alleen maar cijfers en punten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kevin Blokzijl

Kevin Blokzijl

06/03/2012 21:13:08
Quote Anchor link
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.
 
PHP hulp

PHP hulp

29/03/2024 07:16:49
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

06/03/2012 21:30:20
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$compare
= '1.1';
$regex = '/^[0-9\.]+$/';
if (!preg_match($regex, $compare) {
    echo 'plese insert a valid value';
}

else {
    echo 'Thank you!!';
}

?>
Gewijzigd op 06/03/2012 22:05:53 door Ger van Steenderen
 
Kevin Blokzijl

Kevin Blokzijl

06/03/2012 21:31:25
Quote Anchor link
Ger van Steenderen op 06/03/2012 21:30:20:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?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?
Gewijzigd op 06/03/2012 21:31:43 door Kevin Blokzijl
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

06/03/2012 22:11:22
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?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
Gewijzigd op 06/03/2012 22:11:51 door Ger van Steenderen
 
Kevin Blokzijl

Kevin Blokzijl

06/03/2012 22:57:53
Quote Anchor link
Ger van Steenderen op 06/03/2012 22:11:22:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?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?
Gewijzigd op 07/03/2012 12:46:01 door Kevin Blokzijl
 
Marvin Guichelaar

Marvin Guichelaar

07/03/2012 11:33:59
Quote Anchor link
Kevin Blokzijl op 06/03/2012 22:57:53:
Ger van Steenderen op 06/03/2012 22:11:22:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?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



Bij $compare vul je de $_POST in.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

07/03/2012 13:11:01
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$regex
= '/^[1-9]{1,3}(\\.[0-9]{1})?$/';
?>

Deze regex doet wat jij wilt
Gewijzigd op 07/03/2012 13:12:37 door Ger van Steenderen
 
Kevin Blokzijl

Kevin Blokzijl

10/03/2012 10:05:58
Quote Anchor link
Ger van Steenderen op 07/03/2012 13:11:01:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$regex
= '/^[1-9]{1,3}(\\.[0-9]{1})?$/';
?>

Deze regex doet wat jij wilt


Als ik nu 120 intyp geeft hij fout aan?
 
Mark L

Mark L

10/03/2012 11:25:14
Quote Anchor link
Kevin Blokzijl op 06/03/2012 21:31:25:
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?



Kevin Blokzijl op 06/03/2012 22:57:53:
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?



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
Gewijzigd op 10/03/2012 11:26:32 door Mark L
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

10/03/2012 12:10:42
Quote Anchor link
Kevin Blokzijl op 10/03/2012 10:05:58:
Ger van Steenderen op 07/03/2012 13:11:01:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$regex
= '/^[1-9]{1,3}(\\.[0-9]{1})?$/';
?>

Deze regex doet wat jij wilt


Als ik nu 120 intyp geeft hij fout aan?

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
 
Mark L

Mark L

10/03/2012 12:24:10
Quote Anchor link
@Ger van Steenderen. 120 zal hij niet matchen, je specificeert namelijk met [1-9] dat er geen 0 in mag. Dus 12[/b] kan niet. 121 daarentegen wel.
 
Ozzie PHP

Ozzie PHP

10/03/2012 12:49:40
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$int
= 22.2; // het getal dat getest moet worden
if (!is_numeric($int) || (int) $int < 0 || strpos(strrev($int), '.') > 1) {
  echo 'fout';
}
else {
  echo 'goed';
}

?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.