joker: nur a-z

hallo, hab vergebens eine function gesucht die prüft ob der inhalt des strings $blub nur aus buchstaben besteht...
kann mir da einer helfen?

(mit regulären Ausdrücken kenn ich mich nich t gut aus)

mfg joker

  1. Hallo joker,

    hallo, hab vergebens eine function gesucht die prüft ob der inhalt des strings $blub nur aus buchstaben besteht...
    kann mir da einer helfen?

    /[1]*$/

    Gruß
    Alexander Brock

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }

    1. a-z ↩︎

  2. Hallo joker.

    hallo, hab vergebens eine function gesucht die prüft ob der inhalt des strings $blub nur aus buchstaben besteht...
    kann mir da einer helfen?

    Sicher. Welche Buchstaben sollen alles enthalten sein?

    Ich vermute A-Z, a-z, äöü ß.

    (mit regulären Ausdrücken kenn ich mich nich t gut aus)

    Da wirst du hier aber nicht umhin kommen.
    Eine sehr gute Einleitung zum Thema RegEx gibt es hier: http://pcre.nophia.de/intro/index.php

    Gruß, Ashura

    --
    Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
    30 Days to becoming an Opera8 Lover -- Day 19: Notes
    Meine Browser: Opera 8.01 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
    [Deshalb frei! - Argumente pro freie Software]
  3. hallo, hab vergebens eine function gesucht die prüft ob der inhalt des strings $blub nur aus buchstaben besteht...
    kann mir da einer helfen?

    (mit regulären Ausdrücken kenn ich mich nich t gut aus)

    if (preg_match("/[1]*$/", $blub) == 1) echo "nur Buchstaben";


    1. a-z ↩︎

  4. Tag joker.

    hallo, hab vergebens eine function gesucht die prüft ob der inhalt des strings $blub nur aus buchstaben besteht...

    Ich nehme an, dass dein String neben Groß- und Kleinbuchstaben auch Umlaute und das Eszett enthalten darf und wenigstens 1 Zeichen lang sein muss. Dann würde das Muster so aussehen:

    $muster = "/^[A-Za-zäöüÄÖÜß]+$/";

    Die allgemeine Syntax regulärer Ausdrücke kannst du hier nachlesen:
    http://de.selfhtml.org/perl/sprache/regexpr.htm, die PHP-Spezifika sind hier beschrieben: http://de.php.net/manual/de/reference.pcre.pattern.syntax.php.

    Siechfred

  5. Hi,

    hallo, hab vergebens eine function gesucht die prüft ob der inhalt des strings $blub nur aus buchstaben besteht...

    ctype_lower(), ctype_alpha(), ctype_print(), ...

    (mit regulären Ausdrücken kenn ich mich nich t gut aus)

    Die sind hier i.d.R. auch gar nicht notwendig.

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
    1. Tag Cybaer.

      ctype_lower(), ctype_alpha(), ctype_print(), ...

      (mit regulären Ausdrücken kenn ich mich nich t gut aus)
      Die sind hier i.d.R. auch gar nicht notwendig.

      Was ist mit Umlauten und dem Eszett bei o.g. Funktionen? Wäre da ein RegExp nicht die sicherere Variante?

      Siechfred

      1. Hi,

        Was ist mit Umlauten und dem Eszett bei o.g. Funktionen?

        Was soll damit sein? Werden auf Wunsch berücksichtigt. Auf Wunsch auch nicht.

        Wäre da ein RegExp nicht die sicherere Variante?

        Das kann nur der OP beantworten - schließlich wird *er* eine Aufgabenstellung vor Augen haben (die wir ohnehin nicht kennen).

        Auf jeden Fall aber gibt es bereits eine Funktion in PHP die, wie erfragt, "nur a-z" erkennt. Für *darüberhinausgehende* Vorschläge wird aber sicherlich jeder offen sein - sicherlich auch wenn sie erstmal komplizierter sind. ;-)

        Aber tröstlicherweise kann man auch mit ctype... komplexere Aufgaben erledigen. Z.B. das Zuweisen der Buchstaben zu einer Sprache. Das dürfte mit RegExp wohl nur mit aufwendigen Tabellen gelingen.

        Und so gesehen ist ctype... den RegExp bei solcherlei Aufgabenstellungen in jeder Hinsicht überlegen ...

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
        1. Hi,

          Z.B. das Zuweisen der Buchstaben zu einer Sprache.

          Ähm, nicht "Sprache", Zeichensatz natürlich. =;-)

          Gruß, Cybaer

          --
          Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
        2. Hi,

          Und so gesehen ist ctype... den RegExp bei solcherlei Aufgabenstellungen in jeder Hinsicht überlegen ...

          und ein link kommt immer gut.

          http://de3.php.net/manual/de/ref.ctype.php

          MfG

        3. Tag Cybaer.

          Was ist mit Umlauten und dem Eszett bei o.g. Funktionen?
          Was soll damit sein? Werden auf Wunsch berücksichtigt. Auf Wunsch auch nicht.

          Aha, und wie äußere ich meinen Wunsch in PHP?

          Aber tröstlicherweise kann man auch mit ctype... komplexere Aufgaben erledigen. Z.B. das Zuweisen der Buchstaben zu einer Sprache. Das dürfte mit RegExp wohl nur mit aufwendigen Tabellen gelingen.

          Hm, ist das bezogen auf die Fragestellung denn erforderlich?

          Und so gesehen ist ctype... den RegExp bei solcherlei Aufgabenstellungen in jeder Hinsicht überlegen ...

          Da wage ich als PHP-Laie nicht zu widersprechen :-)

          Siechfred

          1. Hi,

            Aha, und wie äußere ich meinen Wunsch in PHP?

            Indem Du mittels setlocale() den Zeichensatz deiner Wahl einstellst.

            Hm, ist das bezogen auf die Fragestellung denn erforderlich?

            Keineswegs. War eine rein prinzipielle Anmerkung, daß man kann, wenn man einfache Funktionen nicht mag und auf "komplexe" Programmierung steht. ;-)

            Gruß, Cybaer

            --
            Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
            1. Tag Cybaer.

              Indem Du mittels setlocale() den Zeichensatz deiner Wahl einstellst.

              Naja, irgendwie komme ich mit der Doku zu setlocale noch nicht so recht klar. Gibt es vordefinierte Strings, derer ich mich beim Einstellen des Zeichensatzes bedienen kann (ich gehe mal davon aus) und wo finde ich die?

              Siechfred

              1. puts "Hallo " + gets.chomp + "."

                ?> Siechfred
                => Hallo Siechfred.

                Naja, irgendwie komme ich mit der Doku zu setlocale noch nicht so recht klar. Gibt es vordefinierte Strings, derer ich mich beim Einstellen des Zeichensatzes bedienen kann (ich gehe mal davon aus) und wo finde ich die?

                In den Beispielcodes der Userkommentare.

                Gruß, Ashura

                --
                Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
                30 Days to becoming an Opera8 Lover -- Day 19: Notes
                Meine Browser: Opera 8.01 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
                [Deshalb frei! - Argumente pro freie Software]
                1. Tag Ashura.

                  Gibt es vordefinierte Strings, derer ich mich beim Einstellen des Zeichensatzes bedienen kann (ich gehe mal davon aus) und wo finde ich die?
                  In den Beispielcodes der Userkommentare.

                  Die Userkommentare habe ich schon vorher mal überflogen, aber das ist mir zu dünn. Der eine sagt: "Nimm dies", der nächste sagt "Dies funktioniert hier unter OS Xyz nicht, nimm besser das". Irgendwo muss es doch eine offizielle[tm] Quelle für diese Strings geben, ggf. mit Versionsnummer und Angaben zur Kompatibilität, oder?

                  Siechfred

                  1. 你好 Siechfred,

                    Die Userkommentare habe ich schon vorher mal überflogen, aber das ist mir
                    zu dünn. Der eine sagt: "Nimm dies", der nächste sagt "Dies funktioniert
                    hier unter OS Xyz nicht, nimm besser das". Irgendwo muss es doch eine
                    offizielle[tm] Quelle für diese Strings geben, ggf. mit Versionsnummer und
                    Angaben zur Kompatibilität, oder?

                    Nein. Denn jeder Administrator kann die Locales benennen, wie er lustig ist.
                    Deshalb macht man sowas konfigurierbar.

                    再见,
                    克里斯蒂安

                    --
                    Wenn der Schüler bereit ist, erscheint der Meister.
                    http://wwwtech.de/
                    1. Tag Christian.

                      Denn jeder Administrator kann die Locales benennen, wie er lustig ist.

                      Hm, ich benenne eine Locale also 'blablubb' und setze sie mittels setlocale, soweit richtig? Ansonsten verlasse ich mich darauf, dass der Administrator bei der Benamsung seiner Locales die Userkommentare auf php.net gelesen hat, oder?

                      Deshalb macht man sowas konfigurierbar.

                      Irgendwie habe ich gerade ein massives Verständnisproblem (es ist einfach zu warm für Leute meines Alters ...). Ich vergebe für eine Locale einen Namen, gut. Ich möchte diese Locale verwenden, dazu nehme ich setlocale, auch klar (denke ich). Gibt es nun aber standardisierte Locales, die ich verwenden kann, oder muss ich PHP raten lassen, indem ich ihm ein Array möglicher Locales übergebe in der Hoffnung, dass eine davon passt?

                      Siechfred

                      1. 你好 Siechfred,

                        Denn jeder Administrator kann die Locales benennen, wie er lustig ist.

                        Hm, ich benenne eine Locale also 'blablubb' und setze sie mittels
                        setlocale, soweit richtig?

                        Nicht du, sondern der Administrator des Servers.

                        Ansonsten verlasse ich mich darauf, dass der Administrator bei der
                        Benamsung seiner Locales die Userkommentare auf php.net gelesen hat, oder?

                        Nein, du verlässt dich drauf, dass der Administrator die Standard-Namen
                        belässt :)

                        Deshalb macht man sowas konfigurierbar.

                        Irgendwie habe ich gerade ein massives Verständnisproblem (es ist einfach
                        zu warm für Leute meines Alters ...). Ich vergebe für eine Locale einen
                        Namen, gut.

                        Nein, nicht du, sondern der Administrator.

                        Ich möchte diese Locale verwenden, dazu nehme ich setlocale, auch klar
                        (denke ich).

                        Jupp.

                        Gibt es nun aber standardisierte Locales, die ich verwenden kann, oder
                        muss ich PHP raten lassen, indem ich ihm ein Array möglicher Locales
                        übergebe in der Hoffnung, dass eine davon passt?

                        Weder, noch. Du schaust nach, welche Locales es gibt (locale -a) und
                        stellst das richtige in der Konfiguration der Software ein.

                        再见,
                        克里斯蒂安

                        --
                        Sich erinnern bedeutet, aus einer Erfahrung nicht ausreichend gelernt zu haben.
                        http://wwwtech.de/
                        1. Tag Christian.

                          Du schaust nach, welche Locales es gibt (locale -a) und stellst das richtige in der Konfiguration der Software ein.

                          Aha. Und wie erfahre ich, welche Locale die passende ist, wenn es nicht standardisiert ist? Muss ich mich dann doch darauf verlassen, dass es eine passend benannte Locale gibt? Und kann man sich bei einer Software dann überhaupt darauf verlassen, dass es eine passende Locale auf dem Zielsystem gibt? Angenommen, ich mache es so, wie es in den Userkommentaren steht, dann komme ich doch um eine Alternative nicht herum:

                          $input = $_POST['Nachname'];  
                          $input_OK = False;  
                          if(setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'de-DE', 'de', 'ge', 'de_DE.ISO_8859-1', 'German')) {  
                            if(ctype_alpha($input)) {  
                              $input_OK = True;  
                            }  
                          }  
                          else {  
                            if(preg_match("/^[a-zA-ZäöüÄÖÜß-]+$/", $input)) {  
                              $input_OK = True;  
                            }  
                          }  
                          if(!$input_OK) {  
                            echo "Der Nachname enthält unzulässige Zeichen.";  
                          }
                          

                          So, wo ist nun der Sinn von ctype_alpha in diesem Zusammenhang, ich kann $input doch gleich nur mit preg_match testen (das war ja der Ursprung dieses Threadzweigs).

                          Siechfred

                          1. 你好 Siechfred,

                            Du schaust nach, welche Locales es gibt (locale -a) und stellst das
                            richtige in der Konfiguration der Software ein.

                            Aha. Und wie erfahre ich, welche Locale die passende ist, wenn es nicht
                            standardisiert ist?

                            Nachgucken :) man locale, man localedef

                            Und kann man sich bei einer Software dann überhaupt darauf verlassen,
                            dass es eine passende Locale auf dem Zielsystem gibt?

                            Wenn nicht, muss der Administrator halt ein entsprechendes Locale
                            einrichten.

                            Angenommen, ich mache es so, wie es in den Userkommentaren steht, [...]

                            Das macht man auch nicht -- wie gesagt, sowas hält man konfigurierbar.

                            So, wo ist nun der Sinn von ctype_alpha in diesem Zusammenhang, ich kann
                            $input doch gleich nur mit preg_match testen (das war ja der Ursprung
                            dieses Threadzweigs).

                            preg_match() verhält sich, abhängig vom locale, auch anders. i-Flag, \l,
                            \L, \u, \U, \w, \W, \s, \S, \d, \D, nur um mal einige zu nennen.

                            再见,
                            克里斯蒂安

                            --
                            Mensch zu Mathematiker: "Ich finde Ihre Arbeit ziemlich monoton". Mathematiker: "Mag sein! Dafür ist sie aber stetig und unbeschränkt."
                            http://wwwtech.de/
                            1. Tag Christian.

                              Aha. Und wie erfahre ich, welche Locale die passende ist, wenn es nicht
                              standardisiert ist?
                              Nachgucken :) man locale, man localedef

                              Geht nicht, da kommt immer "Der Befehl 'man' ist entweder falsch geschrieben oder konnte nicht gefunden werden." *fg* Nee, im Ernst, ich mag mir nicht PHP installieren, nur um diese zwei manuals lesen zu können, gibt's die auch irgendwo anders zu bestaunen, oder ist ihr Inhalt gar gleich dem auf php.net?

                              Angenommen, ich mache es so, wie es in den Userkommentaren steht, [...]
                              Das macht man auch nicht -- wie gesagt, sowas hält man konfigurierbar.

                              Du meinst, dass der User vor Softwareinstallation beim Administrator den Namen der Locale für deutsch erfragt, dies dann (wie auch immer) in einer Konfiguration hinterlegt, sodass sich das Skript diesen String dann aus der Konfiguration holen kann?

                              preg_match() verhält sich, abhängig vom locale, auch anders. i-Flag, \l,
                              \L, \u, \U, \w, \W, \s, \S, \d, \D, nur um mal einige zu nennen.

                              Ja, bekannt. Aber ich wollte ja keine der Zeichenklassen verwenden ;-)

                              Verstehe ich dich also richtig, dass man bei umfangreichen PHP-Projekten zunächst die (das?) zutreffende Locale (ggf. durch den Anwender) erfragen lässt und dann setzt?

                              Siechfred

                              1. 你好 Siechfred,

                                Aha. Und wie erfahre ich, welche Locale die passende ist, wenn es
                                nicht standardisiert ist?
                                Nachgucken :) man locale, man localedef

                                Geht nicht, da kommt immer "Der Befehl 'man' ist entweder falsch
                                geschrieben oder konnte nicht gefunden werden." *fg* Nee, im Ernst, ich
                                mag mir nicht PHP installieren, nur um diese zwei manuals lesen zu
                                können, gibt's die auch irgendwo anders zu bestaunen, oder ist ihr Inhalt
                                gar gleich dem auf php.net?

                                Mit PHP hat das gar nichts zu tun. Aber Manpages kannst du auch im
                                Indernett einsehen, z. B. hier:

                                http://www.die.net/doc/linux/man/
                                  locale(1)
                                  locale(3)
                                  locale(7)
                                  localeconv(3)
                                  localedef(1)

                                Angenommen, ich mache es so, wie es in den Userkommentaren steht, [...]
                                Das macht man auch nicht -- wie gesagt, sowas hält man konfigurierbar.

                                Du meinst, dass der User vor Softwareinstallation beim Administrator den
                                Namen der Locale für deutsch erfragt, dies dann (wie auch immer) in einer
                                Konfiguration hinterlegt, sodass sich das Skript diesen String dann aus
                                der Konfiguration holen kann?

                                Korrekt. Wobei ein locale noch einiges mehr an Infos enthält als nur die
                                Sprache.

                                preg_match() verhält sich, abhängig vom locale, auch anders. i-Flag, \l,
                                \L, \u, \U, \w, \W, \s, \S, \d, \D, nur um mal einige zu nennen.

                                Ja, bekannt. Aber ich wollte ja keine der Zeichenklassen verwenden ;-)

                                Solltest du aber :)

                                Verstehe ich dich also richtig, dass man bei umfangreichen PHP-Projekten
                                zunächst die (das?) zutreffende Locale (ggf. durch den Anwender) erfragen
                                lässt und dann setzt?

                                Ja, der Installateur trägt das (sic! ;-) richtige Locale in die
                                Konfiguration ein. Wenn er es nicht weiss, muss er halt beim
                                System-Administrator nachfragen.

                                再见,
                                克里斯蒂安

                                --
                                Ihr wisst nicht, wie man den Menschen dient. Wie sollt ihr wissen, wie man den Goettern dienen soll?
                                http://wwwtech.de/
                              2. Hi,

                                Geht nicht, da kommt immer "Der Befehl 'man' ist entweder falsch geschrieben oder konnte nicht gefunden werden."

                                man ist der Kommandozeilenbefehl um in unixoiden Shells die Manual Pages aufzurufen (also das, was bei Windows die Hilfe ist - na ja, sinngemäß ;-)).

                                Demzufolge müßtest Du in PHP, vorausgesetzt dein Provider arbeitet mit Unix/Linux, diese Kommandozeilenbefehle wie üblich mit exec() & Co. aufrufen.

                                Ja, bekannt. Aber ich wollte ja keine der Zeichenklassen verwenden ;-)

                                Wenig sinnvoll. Um bei den äöü zu bleiben: Warum sind diese erlaubt? Wenn sie erlaubt sind, was ist dann mit àé etc.? Sind die nicht erlaubt? Wenn man alle diese Zeichen jenseits von a-z umfassen will, dann wird das Erstellen entsprechenden manuellen RegExp-Liste halt zur Qual ... ;-)

                                Gruß, Cybaer

                                --
                                Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!