kostenloser Webspace werbefrei: lima-city


String überprüfen (preg_match)

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    buechsdeluxe

    buechsdeluxe hat kostenlosen Webspace.

    Hallo zusammen,

    ich habe ein ref="/tag/kleines problem">kleines Problem und komme gerade nicht wirklich weiter. Und zwar möchte ich überprüfen ob eine eingebender String sowohl einen Buchstaben als auch eine Ziffer enthält. Ich versuche das ganze mit der Funktion preg_match. Allerdings komme ich nicht ganz zum gewünschten Erfolg, da ich nicht weiß wie ich angeben kann das beides vorhanden sein muss.

    preg_match('#[A-Za-z0-9]#', "Hier der String der überprüft werden soll")


    Allerdings reicht es ja so aus, dass entweder A-Z oder a-z oder 0-9 vorhanden ist.

    Ich bräuchte also irgendwie eine kleine Denkhilfe wie ich preg_match erklären kann dass sowohl A-Za-z als auch 0-9 vorhanden sein muss. Ich hoffe mir kann jmd helfen :)

    mfg
    Buechsi




    Beitrag zuletzt geändert: 22.2.2010 16:58:55 von buechsdeluxe
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Probier einfach mal:
    if (preg_match('#[A-Za-z]#', "Hier der String der überprüft werden soll") && preg_match('#[0-9]#', "Hier der String der überprüft werden soll"))
    {
    //und so weiter...


    LG cookies
  4. die regulären ausdrücke dazu wären /[A-Za-z]+/ und /[0-9]+/

    Beitrag zuletzt geändert: 22.2.2010 17:17:16 von fchriis
  5. Da Du ja eigentlich zwei Bedingungen abprüfen möchtest, musst Du auch zweimal testen:
    $stri="Hier der String der überprüft werden soll";
    $res=preg_match('#[A-Za-z]#',$stri) && preg_match('#[0-9]#',$stri);


    So sollte es gehen - getestet habe ich es aber nicht ...

    Beitrag zuletzt geändert: 22.2.2010 17:18:09 von cars-ten
  6. Autor dieses Themas

    buechsdeluxe

    buechsdeluxe hat kostenlosen Webspace.

    :biggrin:

    Komisch so hatte ich es vorhin schon versucht, weil das auch mein erster Gedanke war, aber da hab ich wohl einen kleinen Fehler drin gehabt denn es ging nicht. Aber jetzt funktioniert alles bestens.

    Viele Dank.
  7. buechsdeluxe schrieb:
    Hallo zusammen,

    ich habe ein kleines Problem und komme gerade nicht wirklich weiter. Und zwar möchte ich überprüfen ob eine eingebender String sowohl einen Buchstaben als auch eine Ziffer enthält. Ich versuche das ganze mit der Funktion preg_match. Allerdings komme ich nicht ganz zum gewünschten Erfolg, da ich nicht weiß wie ich angeben kann das beides vorhanden sein muss.

    preg_match('#[A-Za-z0-9]#', "Hier der String der überprüft werden soll")


    Allerdings reicht es ja so aus, dass entweder A-Z oder a-z oder 0-9 vorhanden ist.

    Ich bräuchte also irgendwie eine kleine Denkhilfe wie ich preg_match erklären kann dass sowohl A-Za-z als auch 0-9 vorhanden sein muss. Ich hoffe mir kann jmd helfen :)

    mfg
    Buechsi



    Es reicht auch 1 regular expression
    ([A-Za-z]+[0-9]+)|([0-9]+[A-Za-z]+)


    Prüft ob ein (oder mehr) Buchstabe gefolgt von einer Zahl (oder mehr)
    ODER
    eine (oder mehr) Zahl gefolgt von einem (oder mehreren) Buchstaben
    vorhanden ist..

    Beispiel

    Beitrag zuletzt geändert: 22.2.2010 17:34:37 von simuliertes
  8. Autor dieses Themas

    buechsdeluxe

    buechsdeluxe hat kostenlosen Webspace.

    Bingo. Perfekt genau sowas hab ich gesucht...

    Danke schön :prost:
  9. Nein simuliertes, dein PCRE deckt viele Fälle nicht. Darunter:
    "hal1o"
    Optimal wäre zuerst eine Prüfung auf #^[a-zA-Z0-9]$#, dann eine auf #[a-zA-Z]# und dann eine auf #[0-9]#. Warum? Dann muss der String sowohl Zahl als auch Buchstabe enthalten, kann aber keine weiteren Sonderzeichen enthalten. Ich weiß aber nicht, ob du das überhaupt willst.
  10. a************n

    ich denke es sollte auch das gehten...
    /([\w0-9]+)/

    dabei ist aber zu beachten das natürlich nur in einer zeile geschaut wird... musst noch die modifier setzten...

    und wenn du keine umlaute haben willst musst du \w zu a-zA-Z machen

    mfg André

    //edit: nikic war schneller

    Beitrag zuletzt geändert: 22.2.2010 17:38:23 von andre-morillon
  11. nikic schrieb:
    Nein simuliertes, dein PCRE deckt viele Fälle nicht. Darunter:
    "hal1o"
    Optimal wäre zuerst eine Prüfung auf #^[a-zA-Z0-9]$#, dann eine auf #[a-zA-Z]# und dann eine auf #[0-9]#. Warum? Dann muss der String sowohl Zahl als auch Buchstabe enthalten, kann aber keine weiteren Sonderzeichen enthalten. Ich weiß aber nicht, ob du das überhaupt willst.


    Öhm klar deckt es "hal1o" ab.
    3( oder auch 2 ) Abfragen sind nun mal langsamer als eine, deswegen wäre es doch optimal das in einer Abfrage abzudecken oder?

    andre-morillon Dein Code guckt ob Buchstaben oder Zahlen vorhanden sind (sol aber und sein)
  12. simuliertes schrieb:
    Öhm klar deckt es "hal1o" ab.

    Nein. "hal1o" würde dein PCRE nicht matchen. Nur "hal10" oder "8123ooo", nicht aber "hal1o"
  13. nikic schrieb:
    simuliertes schrieb:
    Öhm klar deckt es "hal1o" ab.

    Nein. "hal1o" würde dein PCRE nicht matchen. Nur "hal10" oder "8123ooo", nicht aber "hal1o"


    nikic die frage worum es hier ging war ob ein string Zahlen und Buchstaben enthält.
    nicht ob er einen Satz mit Zahlen und Buchstaben Matcht!

    Und bei "hal1o" wäre selbstverständlich das Ergebniss : "hal1"


    Beitrag zuletzt geändert: 22.2.2010 19:45:09 von simuliertes
  14. óÒ Da war ich wohl (ausnahmsweise :D) im unrecht. Das ist wirklich ne elegante Lösung, so einfach konnt ich gar nicht denken.
  15. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!