Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Frage zu HTML5 Attribute für Formularfelder

Frage zu HTML5 Attribute für Formularfelder

eMac Extreme14.03.1313:52
Ich erstelle gerade ein Kontaktformular, bei dem ich die Eingabe nach bestimmten Mustern überprüfen möchte.

                <li>
                    <label for="phone">Telefon:</label>
                    <input type="tel" name="phone" placeholder="+12(1)123-123456" required pattern="[\+]\d{2}[\(]\d{1}[\)]\d{3}[\-]\d{6}" />
                    <span class="form_hint">"+12(1)123-123456"</span>
                </li>

Die Auswertung funktioniert auch soweit, nur ist die Eingabe der Telefonnummern sehr begrenzt.

Ich möchte die Varianten an Telefonnummern gerne variabler gestalten. Sprich nicht nur eine Möglichkeit (z.B.: "+12(1)123-123456") zulassen, sondern Mehrere.

Ich hatte gedacht, dass ich anstatt einer fixen Stellenangabe ( \d{6} für 6 Stellen ) einen Stellenbereich ( \d{1-10} ) angebe. Leider funktioniert dies nicht. Der Browser gibt dann kein "valid" bei der Überprüfung der Eingabe zurück.

Wisst ihr, wie ich diesen Stellenbereich angeben kann?

Beispiel:

+49(0)123-123456 "+2Stellen(1Stelle)3Stellen-6Stellen" so ist es jetzt im Code angegeben!

Ich hätte aber gern im Code folgendes stehen:
"+1 bis 2 Stellen (1Stelle) 2 bis 3 Stellen - 1 bis 8 Stellen" (Leerzeichen sind nur für bessere Lesbarkeit), so dass ich folgendes als Valid ausgewertet bekomme.

+49(0)1-1 +49(0)1-12345678
+49(0)12-1 +49(0)12-12345678
+49(0)123-1 +49(0)123-12345678

+1(0)1-1 +49(0)1-12345678
+1(0)12-1 +49(0)12-12345678
+1(0)123-1 +49(0)123-12345678

Was ich schon rausgefunden habe ist, dass ich jede Variante angeben kann und durch ein "|" (or) im Pattern-Attribut verknüpfen kann.

                <li>
                    <label for="phone">Telefon:</label>
                    <input type="tel" name="phone" placeholder="+12(1)123-123456" required pattern="[\+]\d{1}[\(]\d{1}[\)]\d{3}[\-]\d{6}" | [\+]\d{2}[\(]\d{1}[\)]\d{3}[\-]\d{6} />
                    <span class="form_hint">"+12(1)123-123456"</span>
                </li>

Das wäre allerdings viel Schreibarbeit und nicht besonders schön!

Kann mir evtl. jemand von euch einen Tipp geben, oder einen Link zu einer Dokumentation über solche Verknüpfungen und Bereichsdefinitionen? Ich wäre euch sehr dankbar!
0

Kommentare

Charriu14.03.1314:05
Hi,
Versuch es mal mit d{1,10}
0
eMac Extreme14.03.1314:05
das ist doch echt verrückt! Kaum hab ich diesen Thread eröffnet und Suche weiter nach Lösungen, da stolpere ich prompt über die Lösung.

Die Lösung liegt in der Schreibweise! Hatte ich angenommen, dass ein Stellenbereich durch ein Trennstrich angegeben wird, wird er jedoch durch ein Komma angegeben.

Also wird aus \d{1-10} \d{1,10} Somit sind 1 bis 10 Stellen in dem angegebenen Bereich möglich und werden als Valid ausgewertet.
0
eMac Extreme14.03.1314:06
Charriu
Vielen Dank! Bin gerade dann selbst schon drüber gestolpert.
0
Charriu14.03.1314:06

Ich schau bei regulären Ausdrücken immer gerne hier vorbei:
0
eMac Extreme14.03.1314:09
Vielen Dank für den Link, sowas habe ich schon lange gesucht!
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.