login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Invoer controlle op tekst veld

Offline willie - 27/12/2009 22:52
Avatar van willie0 Wie weet hoe ik in het invoer veld van de tekst kan controlleren,
dat er alleen maar letters worden gebruikt.
En dat getallen niet is toe gestaan.

14 antwoorden

Gesponsorde links
Offline vinTage - 27/12/2009 23:24
Avatar van vinTage Nieuw lid zoeken op preg_match met als regex [a-zA-Z] 
Offline TotempaaltJ - 28/12/2009 10:56
Avatar van TotempaaltJ PHP interesse Meer als regex ^[a-zA-Z]*$ ofzo 
Offline Martijn - 28/12/2009 11:20
Avatar van Martijn Crew PHP dat dakje hang er vanaf of je !preg of preg doet in dig geval dan.

a-zA-Z is trouwens te vervangen door \w, alleen laat \w ook underscore toe.
Offline vinTage - 28/12/2009 11:21
Avatar van vinTage Nieuw lid en cijfers...
Offline Martijn - 28/12/2009 13:14
Avatar van Martijn Crew PHP ah, ik dacht dat \d digits deed en \w alleen chars. I stand corrected
Offline ArieMedia - 28/12/2009 13:56
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
expressies werken zwaarder dan PHP.net: ctype_alpha

gebruik dus deze functie..

Citaat:
Checks if all of the characters in the provided string, text , are alphabetic. In the standard C locale letters are just [A-Za-z] and ctype_alpha() is equivalent to (ctype_upper($text) || ctype_lower($text)) if $text is just a single character, but other languages have letters that are considered neither upper nor lower case.
Offline Richard - 28/12/2009 15:45
Avatar van Richard Crew algemeen Helaas zijn letters niet alleen a-z en A-Z, maar ook alle varianten ervan en natuurlijk alle letters uit andere alfabetten dan het onze.

  1. <?php
  2. if (preg_match('{\PL}', $input)) {
  3. // er zit een niet-letter in!
  4. }
Offline Stijn - 28/12/2009 15:55
Avatar van Stijn PHP expert Wat is die \PL?
Offline Richard - 28/12/2009 15:57
Avatar van Richard Crew algemeen Dat is een negated unicode property die alles matcht wat geen letter is:
http://nl3.php....nicode.php
Offline TotempaaltJ - 28/12/2009 17:10
Avatar van TotempaaltJ PHP interesse En vandaar de titel Heer der Regexen? ;)
Offline willie - 28/12/2009 17:12 (laatste wijziging 28/12/2009 17:15)
Avatar van willie 0 Oke, dit gedeelte werkt,
  1. elseif (preg_match('{\PL}', $text)) {
  2. echo "geen getallen in de tekst !<META HTTP-EQUIV='refresh'
  3. content='2;URL=reg_1.php'><BR>";
  4. }

Maar als ik alleen getallen wil inplaats van leters,
  1. elseif (preg_match('{0-9}', $telefoon)) {
  2. echo "geen letters in telefoon !<META HTTP-EQUIV='refresh'
  3. content='2;URL=reg_1.php'><BR>";
  4. }

Dit werkt niet.
Offline Richard - 28/12/2009 17:15
Avatar van Richard Crew algemeen Dat is omdat je cijfers matcht met \d (\D is allesbehalve cijfers). 0-9 behoort in een character class:

  1. elseif(preg_match('{\D}', $text)) {
  2. // niet alleen cijfers!
  3. }


Ik raad je aan even op regular-expressions.info te kijken naar de tutorial. Dat heb je wel nodig, zo te zien :-)
Offline willie - 28/12/2009 17:45
Avatar van willie 0 Oke ik heb het.
  1. elseif (!preg_match ('/^[0-9]+$/', $_POST['telefoon'])){
  2. echo "telefoon alleen nummers<META HTTP-EQUIV='refresh'
  3. content='2;URL=reg_1.php'><BR>";
  4. }

Ik snap nu een beetje hoe dit werkt.
Offline vinTage - 28/12/2009 17:48
Avatar van vinTage Nieuw lid Een telefoon nummer kan je wel iets deftiger controleren dan alleen te checken op cijfers hoor 

wat als iemand maar 9 cijfers invult, of juist 13 omdat die zich in een ander land bevind, of wel/geen streepje gebruikt na het netnummer etc 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.216s