Forum Doku Wiki Blog

Forumsarchiv 2004, März
neue Domainnamen und prüfen mit reg. Ausdruck

archivierte Beiträge lesen

  1. (JAVASCRIPT) neue Domainnamen und prüfen mit reg. Ausdruck von René Marscheider, 21. 03. 2004, 08:18

neue Domainnamen und prüfen mit reg. Ausdruck

Der folgende Beitrag wurde am 21. 03. 2004, 08:18 Uhr von René Marscheider veröffentlicht.

Hi @all,

hier eine Liste der erlaubten Sonderzeichen http://www.denic.de/de/domains/idns/liste.html

Meine Frage ist nun wie kann ich die Variable in den reg. Ausdruck einfügen. Grund ist das z.B. bei einer E-Mail ja der Code riesig wird, um den nun etwas kleiner zu halten wollte ich das über diese Variable lösen.

Beispiel:

----------
var puny_code = 'áàâåäã ... '; // neue erlaubte Sonderzeichen

if(/^([_a-zA-Z0-9-.]+)$/.test(f1) == false) {
----------

Gruß
René

neue Domainnamen und prüfen mit reg. Ausdruck

Der folgende Beitrag wurde am 21. 03. 2004, 11:18 Uhr von René Matscheider veröffentlicht.

Nachtrag:

die Frage von oben habe ich aus folgendem Grund gestellt. Ich weis das man den gesamten Such-String in eine Variable schreiben kann. Da aber der gesamte reg. Ausdruck an den verschiedenen Stellen nicht gleich ist macht es ja keinen Sinn jeden einzelen in einer Variablen zu speichern dann kann ich die "var puny_code ... " ja auch gleich in jede einzelne Stelle einfügen.

----------
if(/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$/.test(f1) == false) {
----------

neue Domainnamen und prüfen mit reg. Ausdruck

Der folgende Beitrag wurde am 21. 03. 2004, 13:00 Uhr von Stefan Einspender veröffentlicht.

Hallo René,

> Meine Frage ist nun wie kann ich die Variable in den reg. Ausdruck einfügen. Grund ist das z.B. bei einer E-Mail ja der Code riesig wird, um den nun etwas kleiner zu halten wollte ich das über diese Variable lösen.

diesen Aufwand würde ich mir nicht machen. Sofern die bisherigen Prüf-
verfahren kein positives Ergebnis bringen, würde ich sinngemäß den
folgenden Text ausgeben:

| Der von Ihnen genannte Domainname enthält Sonderzeichen oder ist
| ungültig. Obwohl es seit einigen Monaten möglich ist, auch Domain-
| namen mit Sonderzeichen zu verwenden, führt dies gerade bei e-Mail
| zu Problemen, da viele Programme diese neuen Schreibweisen nicht
| unterstützen. Wir bitten Sie deshalb, einen Domainnamen anzugeben,
| der keine Sonderzeichen enthält und nur aus a-z, 0-9 sowie - besteht.

M.E. sollte jeder Nutzer, der heute aktiv eine IDN verwendet, damit
etwas anfangen können. Im privaten Bereich wird der Nutzer wissen,
was damit gemeint ist, ggf. muß er den Domainnamen decodiert angeben.
Falls eine Firma heute IDNs verwendet, ist es imho grob fahrlässig.

Viele Grüße,
Stefan

neue Domainnamen und prüfen mit reg. Ausdruck

Der folgende Beitrag wurde am 21. 03. 2004, 13:10 Uhr von René Marscheider veröffentlicht.

Hallo Stefan,

der "JanaServer" unterstützt die neuen Domainnamen schon bzw. bei denen, die die nächste Version (2.4.3) schon testen. Meine Aufgabe ist es jetzt diese Sonderzeichen in den Eingabefeldern der Admin-Seiten zu erlauben. Da ich aber schreibfaul bin ;-) möchte ich diese Zeichen in einer Variablen speichen und dann nur die Varibale in den Ausdruck einfügen.

Gruß
René

neue Domainnamen und prüfen mit reg. Ausdruck

Der folgende Beitrag wurde am 21. 03. 2004, 13:29 Uhr von Stefan Einspender veröffentlicht.

Hallo René,

> der "JanaServer" unterstützt die neuen Domainnamen schon bzw. bei denen, die die nächste Version (2.4.3) schon testen. Meine Aufgabe ist es jetzt diese Sonderzeichen in den Eingabefeldern der Admin-Seiten zu erlauben.

ahja, alles klar, ich dachte, es geht um den Einsatz auf einer Web-
site. Kann ja keiner ahnen, dass Du quasi auf der anderen Seite
sitzt und Dich mit diesem Unfug auseinandersetzen mußt ;-)

Ich denke, es wird hier sicher noch einer der hiesigen JavaScript-
Experten eine geniale Lösung für Dich im Petto haben ...

Viele Grüße,
Stefan

neue Domainnamen und prüfen mit reg. Ausdruck

Der folgende Beitrag wurde am 21. 03. 2004, 13:43 Uhr von René Marscheider veröffentlicht.

Hi Stefan,

ja leider bin ich in dem Fall auf der falschen Seite :D. Aber dennoch Danke für deine Antworten. Muss ich halt noch etwas warten und hoffe das der Beitrag nochmal Beachtung findet.

Gruß
René

neue Domainnamen und prüfen mit reg. Ausdruck

Der folgende Beitrag wurde am 21. 03. 2004, 18:44 Uhr von Sven Rautenberg veröffentlicht.

Moin!

> Meine Frage ist nun wie kann ich die Variable in den reg. Ausdruck einfügen. Grund ist das z.B. bei einer E-Mail ja der Code riesig wird, um den nun etwas kleiner zu halten wollte ich das über diese Variable lösen.

Du implementierst den Punycode-Konvertierungsalgorithmus in Javascript und prüfst dessen Ergebnis auf Korrektheit nach den Regeln für die herkömmlichen Domainnamen - und schon hast du kein Problem mehr mit Umlautdomains.

Das dumme mit Umlautdomains ist: Bei DeNIC hat man sich für die von dir verlinkte Liste von Zeichen geeinigt. Aber bei .com-Domains kann man, wenn ich richtig informiert bin, den gesamten Zeichensatz von Unicode einsetzen. Deine Minimallösung würde als nur bei .de-Domains korrekt sein. Und bei .at-Domains. Währenddessen bei .ch und .li-Domains nur 31 neue Zeichen (statt 92) dazugekommen sind.

Deshalb: Du kannst das Problem nur dadurch erschlagen, dass du:
1. Deinen Umlautstring durch den Punycode-Algorithmus jagst (und aus dem IDN-String einen ACE-String erhälst).
2. Das Ergebnis ist dann eine regelkonforme Domain ohne Umlaute, die durch jeden existierenden RegEx durchgeht - sofern du denn RegExe benutzt, die korrekt arbeiten. Der RegEx aus deinem Posting [pref:t=76206&m=438864] ist _KEIN_ korrekter regulärer Ausdruck zum Checken von Mailadressen, davon abgeleitete Checks auf formal korrekte Domainnamen sind ebenso falsch.
3. Die grundsätzlich regelkonforme Domain im ACE-String prüfst du dann gegen die individuellen Registrierungsvorschriften des jeweiligen TLD-Verwalters - wobei dieser Punkt mußmaßlich das allergrößte Problem sein dürfte, weil es für sowas kein Standardinterface gibt. Naja, zur Not kann man immer noch das DNS fragen, ob die Domain zumindest existiert.

Ob sich sowas allerdings für Javascript wirklich eignet, will ich mal ganz stark bezweifeln. Ich würde dir raten, einfach nur einen Minimalcheck auf die Mailadresse anzuwenden. Und der heißt: "Kommt ein @ drin vor, kommt nach dem @ mindestens ein Punkt drin vor, und kommt vor und nach diesem Punkt, sowie vor dem @ mindestens noch ein anderes Zeichen?"

/.+@[^.].*\.[^.]+/ beispielsweise.

Ob die Domainangabe dann wirklich korrekt ist, hängt stark von der eigentlichen Aufgabenstellung ab und sollte in jedem Fall nicht von Javascript, sondern von einer mit den passenden Möglichkeiten ausgestatteten Server-Routine geprüft werden. Um solch eine Prüfung kommst du sowieso nicht drumherum, weil man Javascript und Formulare bekanntlich beliebig manipulieren kann.

 - Sven Rautenberg
--
Among the maxims on Lord Naoshige's wall, there was this one: "Matters of great concern should be treated lightly."
Master Ittei commented, "Matters of small concern should be treated seriously."
(Hagakure: The Way of the Samurai)

neue Domainnamen und prüfen mit reg. Ausdruck

Der folgende Beitrag wurde am 21. 03. 2004, 20:55 Uhr von René Marscheider veröffentlicht.

Hi Sven,

> Du implementierst den Punycode-Konvertierungsalgorithmus in Javascript und prüfst dessen Ergebnis auf Korrektheit nach den Regeln für die herkömmlichen Domainnamen - und schon hast du kein Problem mehr mit Umlautdomains.

Wie würde das für JavaScript aussehen, gibt es da ein Beispiel?

Gruß
René

PS: war googeln, aber keinen Algorithmus finden können.

neue Domainnamen und prüfen mit reg. Ausdruck

Der folgende Beitrag wurde am 21. 03. 2004, 22:30 Uhr von René Marscheider veröffentlicht.

Hi Sven,

war nochmal Suchen habe leider nur einen Beispielcode in Java gefunden. leider kann ich den nicht interpretieren. Hättest du ein Beispiel in PHP oder eben JavaScript.

Mein größtes Problem dürfte auch der Mangel an englisch kenntnissen sein. :-(

Gruß
René

neue Domainnamen und prüfen mit reg. Ausdruck

Der folgende Beitrag wurde am 22. 03. 2004, 11:17 Uhr von Sven Rautenberg veröffentlicht.

Moin!

> war nochmal Suchen habe leider nur einen Beispielcode in Java gefunden. leider kann ich den nicht interpretieren. Hättest du ein Beispiel in PHP oder eben JavaScript.

In der RFC zum Punycode ist eine Referenzimplementation mit dabei. Das Teil ist aber definitiv kein Pappenstiel. Ich habe mich deshalb damit noch nicht beschäftigt und würde im Zweifel darauf setzen, dass die _serverseitige_ Programmiersprache meiner Wahl eine entsprechende Klasse anbietet. Aber das Thema ist derzeit noch zu neu, als dass man da schon Standardkomponenten erwarten könnte.

> Mein größtes Problem dürfte auch der Mangel an englisch kenntnissen sein. :-(

Dann hast du sowieso verloren.

 - Sven Rautenberg
--
Among the maxims on Lord Naoshige's wall, there was this one: "Matters of great concern should be treated lightly."
Master Ittei commented, "Matters of small concern should be treated seriously."
(Hagakure: The Way of the Samurai)

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4