Didi: RegExp <- Domainname prüfen ?

Hallo,

ich versuche nun mehr seit Stunden unter Zuhilfenahme des Tuts von dem regexp-evaluator eine funktionierende und vernünftige (!) RegExp-Regel zur Überprüfung von Domainnamen (sTLDs) hinzuzubekommen.
Diese soll einen Domainnamen (ohne Endung versteht sich) auf deren Gültigkeit hin überprüfen, d.h. es dürfen Zahlen und Buchstaben vorhanden sein, keine Sonderzeichen (außer den für IDN-Domains zulässige), keine Leerstellen - aber irgendwie funktioniert das überhaupt nicht so wie es soll.
Darum hoffe ich das sich hier jemand erbarmt und mir den richtigen Weg aufzeigt....

Viele Grüße
Didi

  1. Hallo,

    es dürfen Zahlen und Buchstaben vorhanden sein, keine Sonderzeichen (außer den für IDN-Domains zulässige), keine Leerstellen

    Was hast du bereits ausprobiert?

    Suchst du etwas wie:
    /[1]+$/

    Welche Sonderzeichen dürfen in „IDN-Domains“ enthalten sein?

    mfg. Daniel


    1. A-Za-z0-9. ↩︎

    1. Hallo Daniel,

      in IDN dürfen alle (auch internationale) Umlaute enthalten sein, also: á à ă â å ä ã ą ā æ ć ĉ č ċ ç ď đ é è ĕ ê ě ë ė ę ē ğ ĝ ġ ģ ĥ ħ í ì ĭ î ï ĩ į ī ı ĵ ķ ĺ ľ ļ ł ń ň ñ ņ ŋ ó ò ŏ ô ö ő õ ø ō œ ĸ ŕ ř ŗ ś ŝ š ş ť ţ ŧ ú ù ŭ û ů ü ű ũ ų ū ŵ ý ŷ ÿ ź ž ż
      (Hoffe das fas jetzt richtig dargestellt wird...)
      Ferner darf nur der Bindestrich/Minus "-" enthalten sein.
      Die Abfrage soll feststellen, ob
      a) der Domainname syntaktisch korrekt
      und (eigentlich wollte ich das durch einen zweiten Ausdruck machen)
      b) ob es sich hierbei um eine Umlaute (IDN) - Domain handelt.
      Bisher habe ich A-Z/0-9 inkl. Groß/Kleinschreibung in meiner RegExp, aber seit dem Versuch hinsichtlich IDNs nur Chaos :-(

      Viele Grüße
      Didi

      1. Nachtrag:
        ich prüfe gerade mit /^\w+$/ und das scheint auch für Umlaute zu funktionieren, allerdings habe ich nun das Problem, das er Unterstriche akzeptiert und das darf er nicht - sondern nur Bindestriche...

        Gruss
        Didi

        1. Hallo,

          ich prüfe gerade mit /^\w+$/ und das scheint auch für Umlaute zu funktionieren

          Gut. hätte ich nicht erwartet :-)

          allerdings habe ich nun das Problem, das er Unterstriche akzeptiert und das darf er nicht

          Das würde ich einfach mit einer kurzen String-Suche machen. Also erst den RegExp und dann eben noch mal ohne RegExp nach „_“ suchen.

          sondern nur Bindestriche...

          Akzeptiert er die überhaupt mit „\w“?

          mfg. Daniel

          1. Akzeptiert er die überhaupt mit „\w“?

            mfg. Daniel

            Hallo Daniel,

            nein leider nicht - das ist mein Problem :-(
            Er akzeptiert Unterstriche (die ich nicht will) und dafür keine Bindestriche (die ich will). Langsam steigt bei mir die totale Verzweiflung hoch....

            Viele Grüße
            Didi

            1. Hallo,

              Akzeptiert er die überhaupt mit „\w“?

              nein leider nicht - das ist mein Problem :-(
              Er akzeptiert Unterstriche (die ich nicht will) und dafür keine Bindestriche (die ich will). Langsam steigt bei mir die totale Verzweiflung hoch....

              Vielleicht solltest du die Sache genau anders herum angehen. Suche nach Zeichen, die *nicht* enthalten sein dürfen und akzeptiere den String nur, wenn der RegExp false zurückgibt.

              mfg. Daniel

              1. Hallo Daniel,

                mann, mann - da sieht man mal wieder das man den Wald vor lauter Bäumen nicht shehen kann ! Ich bin doch bl..d !
                Natürlich, das dürfte die Lösung sein.
                Werde mich mal dransetzten und lostüfteln.

                Möchte mich aber noch herzlich für die Antworten bedanken!

                Gruss
                Didi

  2. Hi!

    Darum hoffe ich das sich hier jemand erbarmt und mir den richtigen Weg aufzeigt....

    Poste deinen RegEx.
    Dann wird vermutlich schnell jemand erkennen, was du falsch gemacht hast.

    Schöner Gruß,
    rob

  3. Hi,

    ich versuche nun mehr seit Stunden unter Zuhilfenahme des Tuts von dem regexp-evaluator eine funktionierende und vernünftige (!) RegExp-Regel zur Überprüfung von Domainnamen (sTLDs) hinzuzubekommen.

    sponsored Top Level Domains (also sowas wie .jobs oder .travel)?

    Diese soll einen Domainnamen (ohne Endung versteht sich)

    Was verstehst Du bei einem Domainnamen als Endung? Die TLD?
    Beißt sich irgendwie damit, daß Du sTLDs prüfen willst.

    auf deren Gültigkeit hin überprüfen, d.h. es dürfen Zahlen und Buchstaben vorhanden sein, keine Sonderzeichen (außer den für IDN-Domains zulässige),

    Wie willst Du auf die jeweils zulässigen Sonderzeichen prüfen, wenn Du die TLD nicht mit betrachtest?

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.