tag:forum.selfhtml.org,2005:/self Regular Expression für ein Datum – SELFHTML-Forum 2006-03-28T12:18:28Z https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949960#m949960 Rebecca 2006-03-24T08:31:15Z 2006-03-24T08:31:15Z Regular Expression für ein Datum <p>Hallo liebe SelfHtml Gemeinde,</p> <p>ich möchte eine regular Expression für ein Datum festlegen, habe aber ein kleines Problem.</p> <p>Folgender Fall:</p> <p>um auf ein Datum im Format tt/mm/jjjj oder tt-mm-jjjj herauszufinden verwende ich folgende regular expression:</p> <p>/^\d\d[/-]\d\d[/-]\d\d\d\d$/<br> Das funktioniert soweit wunderbar.</p> <p>Nun möchte ich aber, dass das Datum auch im Format tt.mm.jjjj gefunden wird, also mit dem Punkt "." als Trennzeichen.</p> <p>Kopfzerbrechen bereiten mir die beiden Teile: [/-]<br> Hiermit finde ich nämlich die Trennzeichen "/" und "-" im Datum.</p> <p>Das bedeutet demnach soviel wie "/" ODER "-". Wenn ich nun ein weiteres ODER (für den Punkt als Trennzeichen) hinzufügen möchte müsste es demnach heissen: [/-.], richtig? Das funktioniert aber nicht. Ich habe auch [/.-] schon ausprobiert.</p> <p>Kann mir hierbei jemand weiter helfen?<br> Vielen Dank im Voraus</p> <p>Liebe Grüße<br> Rebecca</p> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949982#m949982 Struppi struebig@gmx.net http://javascript.jstruebig.de/ 2006-03-24T08:56:37Z 2006-03-24T08:56:37Z Regular Expression für ein Datum <blockquote> <p>Das bedeutet demnach soviel wie "/" ODER "-". Wenn ich nun ein weiteres ODER (für den Punkt als Trennzeichen) hinzufügen möchte müsste es demnach heissen: [/-.], richtig? Das funktioniert aber nicht. Ich habe auch [/.-] schon ausprobiert.</p> </blockquote> <p>Du musst, soweit ich weiß, nur '/' innerhalb der eckigen Klammern maskieren.<br> Struppi.</p> <div class="signature">-- <br> <a href="http://javascript.jstruebig.de/" rel="nofollow noopener noreferrer">Javascript ist toll</a> </div> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949974#m949974 Siechfred torsten@anaboe.net http://www.steuerwerkstatt.de 2006-03-24T08:59:52Z 2006-03-24T08:59:52Z Regular Expression für ein Datum <p>Hell-O!</p> <blockquote> <p>Nun möchte ich aber, dass das Datum auch im Format tt.mm.jjjj gefunden wird, also mit dem Punkt "." als Trennzeichen.</p> </blockquote> <p>Gut, dass du deine Zeichenklasse erweitern musst, hast du schon erkannt. Wie Struppi dir schon sagte, müssen Sonderzeichen in Zeichenklassen nicht maskiert werden.</p> <blockquote> <p>/^\d\d[/-]\d\d[/-]\d\d\d\d$/<br> Kopfzerbrechen bereiten mir die beiden Teile: [/-]</p> </blockquote> <p>Möchtest du nicht lieber Quantifier verwenden? Dann sähe es so aus:</p> <p>/^\d{2}[/.-]\d{2}[/.-]\d{4}$/</p> <p>Allerdings akzeptiert dieser RegExp auch ein Datum wie "99.00.8652", willst du das?</p> <blockquote> <p>Das bedeutet demnach soviel wie "/" ODER "-". Wenn ich nun ein weiteres ODER (für den Punkt als Trennzeichen) hinzufügen möchte müsste es demnach heissen: [/-.], richtig? Das funktioniert aber nicht. Ich habe auch [/.-] schon ausprobiert.</p> </blockquote> <p>Was genau funktioniert nicht? Welche Programmiersprache verwendest du? Gibt es eine Fehlermeldung?</p> <p>Siechfred</p> <div class="signature">-- <br> Hier könnte Ihre Werbung stehen.<br> <a href="http://siechfred.kennt-wayne.de/2006/3/schlechte_cover_hard_and_heavy" rel="nofollow noopener noreferrer">Die schlechtesten Cover aus dem Bereich Hard and Heavy</a> || <a href="http://siechfred.kennt-wayne.de/2006/3/schoene_woerter_1" rel="nofollow noopener noreferrer">Schöne Wörter, Teil 1</a> </div> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949973#m949973 Gunnar Bittersmann self2006@gunnarbittersmann.de http://gunnarbittersmann.de/ 2006-03-24T09:36:28Z 2006-03-24T09:36:28Z Regular Expression für ein Datum <p>Hello out there!</p> <blockquote> <p>ich möchte eine regular Expression für ein Datum festlegen, habe aber ein kleines Problem.<br> […] tt/mm/jjjj oder tt-mm-jjjj […] auch im Format tt.mm.jjjj</p> </blockquote> <p>Willst du damit eine Eingabe in einem Formularfeld prüfen? Dann hast du noch ein Problem; besser gesagt der Nutzer, der das Datum im nach DIN 5008 gültigen <a href="http://de.wikipedia.org/wiki/Datumsformat" rel="nofollow noopener noreferrer">Datumsformat</a> jjjj-mm-dd gemäß ISO 8601 eingibt. Willst du einem Nutzer vorschreiben, das vernünftigste aller Datumsformate nicht zu benutzen?</p> <p>See ya up the road,<br> Gunnar</p> <div class="signature">-- <br> “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen) </div> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949961#m949961 Struppi struebig@gmx.net http://javascript.jstruebig.de/ 2006-03-24T10:46:17Z 2006-03-24T10:46:17Z Regular Expression für ein Datum <blockquote> <p>ich möchte eine regular Expression für ein Datum festlegen, habe aber ein kleines Problem.</p> </blockquote> <p>Mittlerweile Wissen wir, dass du vermutlich lieber das Datum überprüfen willst. Das geht nicht mit einer RegExp.</p> <blockquote> <p>Folgender Fall:</p> <p>um auf ein Datum im Format tt/mm/jjjj oder tt-mm-jjjj herauszufinden verwende ich folgende regular expression:</p> </blockquote> <p>Um ein Datum zu überprüfen, verwende ich folgende Funktion <a href="http://javascript.jstruebig.de/javascript/39/" rel="nofollow noopener noreferrer">http://javascript.jstruebig.de/javascript/39/</a></p> <p>Struppi.</p> <div class="signature">-- <br> <a href="http://javascript.jstruebig.de/" rel="nofollow noopener noreferrer">Javascript ist toll</a> </div> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949962#m949962 Gunnar Bittersmann self2006@gunnarbittersmann.de http://gunnarbittersmann.de/ 2006-03-24T11:02:21Z 2006-03-24T11:02:21Z Regular Expression für ein Datum <p>Hello out there!</p> <blockquote> <p>Mittlerweile Wissen wir, dass du vermutlich lieber das Datum überprüfen willst. Das geht nicht mit einer RegExp.</p> </blockquote> <p><a href="https://forum.selfhtml.org/?t=126272&m=814389" rel="noopener noreferrer">Und es geht doch.</a></p> <p>See ya up the road,<br> Gunnar</p> <div class="signature">-- <br> “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen) </div> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949963#m949963 Gunnar Bittersmann self2006@gunnarbittersmann.de http://gunnarbittersmann.de/ 2006-03-24T14:57:39Z 2006-03-24T14:57:39Z Regular Expression für ein Datum <p>Hello out there!</p> <p>Was gab’s da auf „nicht hilfreich“ zu clicken? Meine Aussage war lediglich die Berichtigung von Struppis, dass das Prüfen einer Eingabe auf ein gültiges Datum nicht mit einem regulären Ausdruck ginge; denn es geht.</p> <p>Ich wollte keineswegs andeuten, dass man es damit tun sollte.</p> <p>See ya up the road,<br> Gunnar</p> <div class="signature">-- <br> “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen) </div> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949965#m949965 dedlfix 2006-03-24T16:29:01Z 2006-03-24T16:29:01Z Regular Expression für ein Datum <p>echo $begrüßung;</p> <blockquote> <p>Was gab’s da auf „nicht hilfreich“ zu clicken?</p> </blockquote> <p>Ich weiß es nicht.</p> <blockquote> <p>Meine Aussage war lediglich die Berichtigung von Struppis, dass das Prüfen einer Eingabe auf ein gültiges Datum nicht mit einem regulären Ausdruck ginge; denn es geht.</p> </blockquote> <p>Auch wenn die Aussage richtig ist, kann sie doch nicht hilfreich sein.</p> <p>Ich könnte mir als Gründe folgende vorstellen:</p> <ul> <li>Theoretisch mag es mit einigem Aufwand möglich sein, eine vollständige Datumsprüfung mit einem regulärem Ausdruck durchzuführen. Wenn ich mir das richtig ausmale kommt da einiges an Zeichen zusammen. Reguläre Ausdrücke sind so schon nicht leicht zu lesen und du willst theoretisch einen erstellen, der mit jeder Menge Zeichen aufgebläht ist, die diverse Teilbarkeitsmuster gefolgt (lookahead) oder vorangegangen (lookbehind) von [schlagmichtot] enthalten - also quasi querbeet durch sämtliche RegExp-Möglichkeiten gehend. Ist sicher theoretisch alles möglich, aber praktisch nicht sehr hilfreich, weil man das eigentliche Ziel mit 3 Zeilen Programmtext einfacher und durchschaubarer erreichen kann.</li> <li>Jemand hat sich verklickt.</li> </ul> <blockquote> <p>Ich wollte keineswegs andeuten, dass man es damit tun sollte.</p> </blockquote> <p>Gut. Ich will mich auch nicht mit dir streiten, weil ich sowieso nicht mehr mithalten kann/will wenn du in die höheren Sphären der Mathematik abdriftest. Aber wenn du Zeit und Muße hast, kannst du ja mal so eine schaltjahrberücksichtigende Datums-RegExp erstellen. Die Kalenderkorrekturen längst vergangener Jahrhunderte kannst du ja für den Anfang erst einmal unberücksichtigt lassen. :-)</p> <p>echo "$verabschiedung $name";</p> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949964#m949964 Struppi struebig@gmx.net http://javascript.jstruebig.de/ 2006-03-24T17:29:26Z 2006-03-24T17:29:26Z Regular Expression für ein Datum <blockquote> <p>Was gab’s da auf „nicht hilfreich“ zu clicken?</p> </blockquote> <p>ich war''s nicht</p> <p>:-)</p> <p>Struppi.</p> <div class="signature">-- <br> <a href="http://javascript.jstruebig.de/" rel="nofollow noopener noreferrer">Javascript ist toll</a> </div> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949966#m949966 Gunnar Bittersmann self2006@gunnarbittersmann.de http://gunnarbittersmann.de/ 2006-03-25T09:25:32Z 2016-04-30T13:09:49Z Regular Expression für ein Datum <p>Hello out there!</p> <blockquote> <p>Aber wenn du Zeit und Muße hast, kannst du ja mal so eine schaltjahrberücksichtigende Datums-RegExp erstellen. Die Kalenderkorrekturen längst vergangener Jahrhunderte kannst du ja für den Anfang erst einmal unberücksichtigt lassen. :-)</p> </blockquote> <p><code>-?\d*(?:(?:(?:(?:[02468][048]|[13579][26])(?:[02468][048]|[13579][26])|(?:[02468][^048]|[13579][^26])(?:0[48]|[2468][048]|[13579][26]))[-./]?02[-./]?(?:0[1-9]|[12]\d)|(?:(?:[02468][^048]|[13579][^26])00|\d\d(?:[02468][^048]|[13579][^26]))[-./]?02[-./]?(?:0[1-9]|12\d|2[0-8]))|\d{4}[-./]?(?:(?:0[13578]|1[02])[-./]?(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)[-./]?(?:0[1-9]|[12]\d|30)))</code></p> <p>Na, so schwer war’s doch gar nicht. ;-)</p> <p>Der Ausdruck passt auf gültige Daten im Format ISO 8601 (heutige Schaltjahrregel auf gesamten Bereich angewandt). Der Audruck lässt '-', '.' oder '/' als Trennzeichen zu oder auch kein Trennzeichen. Da haben wir ein Manko: Der Ausdruck erkennt nicht, ob zwischen Jahr und Monat sowie zwischen Monat und Tag dasselbe Trennzeichen steht (2006.03/25 würde auch matchen). Ließe sich mit einigem Aufwand beheben (statt <code>foo[-./]?bar[-./]?baz</code> dann <code>foo-bar-baz|foo\.bar\.baz|foo/bar/baz|foobarbaz</code>).</p> <p>Zur Erklärung:</p> <pre><code class="block">-?\d* # für die Ewigkeit (?: (?: (?: (?:[02468][048] | [13579][26]) # Jahrhundert durch 4 teilbar (?:[02468][048] | [13579][26]) # Jahr duch 4 teilbar | (?:[02468][^048] | [13579][^26]) # Jahrhundert nicht durch 4 teilbar (?:0[48] | [2468][048] | [13579][26]) # Jahr duch 4 teilbar außer volle Jahrhunderte ) [-./]? # Trennzeichen 02 # Februar im Schaltjahr [-./]? # Trennzeichen (?:0[1-9] | [12]\d) # 01 bis 29 | (?: (?:[02468][^048] | [13579][^26]) # Jahrhundert nicht durch 4 teilbar 00 # selbsterklärend | \d\d # beliebiges Jahrhundert (?:[02468][^048] | [13579][^26]) # Jahr nicht durch 4 teilbar ) [-./]? # Trennzeichen 02 # Februar im Nicht-Schaltjahr [-./]? # Trennzeichen (?:0[1-9] | 12\d | 2[0-8]) # 01 bis 28 ) | \d{4} # beliebiges Jahr [-./]? # Trennzeichen (?: (?:0[13578] | 1[02]) # langer Monat [-./]? # Trennzeichen (?:0[1-9] | [12]\d | 3[01]) # 01 bis 31 | (?:0[469] | 11) # kurzer Monat [-./]? # Trennzeichen (?:0[1-9] | [12]\d | 30) # 01 bis 30 ) ) </code></pre> <p>See ya up the road, Gunnar</p> <div class="signature">-- <br> “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen) </div> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949967#m949967 Gunnar Bittersmann self2006@gunnarbittersmann.de http://gunnarbittersmann.de/ 2006-03-25T09:34:53Z 2006-03-25T09:34:53Z Regular Expression für ein Datum <p>Hello out there!</p> <p>Wäre auch zu schön gewesen ohne Fehler. So sollte’s passen:</p> <p>-?\d*(?:(?:(?:(?:[02468][048]|[13579][26])(?:[02468][048]|[13579][26])|(?:[02468][^048]|[13579][^26])(?:0[48]|[2468][048]|[13579][26]))[-./]?02[-./]?(?:0[1-9]|[12]\d)|(?:(?:[02468][^048]|[13579][^26])00|\d\d(?:[02468][^048]|[13579][^26]))[-./]?02[-./]?(?:0[1-9]|1\d|2[0-8]))|\d{4}[-./]?(?:(?:0[13578]|1[02])[-./]?(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)[-./]?(?:0[1-9]|[12]\d|30)))</p> <p>Eine '2' war zu viel (trotz Vorschau):</p> <blockquote> <p>(?:0[1-9] | 12\d | 2[0-8])               # 01 bis 28</p> </blockquote> <p>^ die hier muss weg</p> <p>See ya up the road,<br> Ingunnarid</p> <div class="signature">-- <br> “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen) </div> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949968#m949968 seth email_selfforum@wg-karlsruhe.de http://www.bierdatenbank.de 2006-03-25T17:34:57Z 2006-03-25T17:34:57Z Regular Expression für ein Datum <p>gudn tach!</p> <blockquote> <p>-?\d*(?:(?:(?:(?:[02468][048]|[13579][26])(?:[02468][048]|[13579][26])|(?:[02468][^048]|[13579][^26])(?:0[48]|[2468][048]|[13579][26]))[-./]?02[-./]?(?:0[1-9]|[12]\d)|(?:(?:[02468][^048]|[13579][^26])00|\d\d(?:[02468][^048]|[13579][^26]))[-./]?02[-./]?(?:0[1-9]|1\d|2[0-8]))|\d{4}[-./]?(?:(?:0[13578]|1[02])[-./]?(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)[-./]?(?:0[1-9]|[12]\d|30)))</p> </blockquote> <p>geil!<br> aaaber es sind noch immer fehler drin, weil durch die negierten zeichenklassen z.b. '2a04-02-01' zugelassen wird.</p> <blockquote> <p>-?\d*                                        # für die Ewigkeit</p> </blockquote> <p>lol! wenn also 9999-12-31 kurz nach 23:59 alles den bach runter geht, weil niemand der grossen betriebssystem-hersteller an das y10k-problem dachte, laeuft dein regexp noch munter weiter und streckt der anderen software die zunge heraus. ;-)</p> <p>es geht uebrigens noch kuerzer, wenn man die nicht-schaltjahre als teilmenge der menge der beliebigen jahre ansieht:</p> <p>/-?\d*(?:(?:(?:[02468][048]|[13579][26])(?:[02468][048]|[13579][26])|(?:[02468][1-35-79]|[13579][013-57-9])(?:0[48]|[2468][048]|[13579][26]))([-./]?)02\1 29|\d{4}([-./]?)(?:(?:0[13578]|1[02])\2(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)\2(?:0[1-9]|[12]\d|30)|02\2(?:0[1-9]|1\d|2[0-8])))/x</p> <p>bzw. kommentiert:</p> <pre><code class="block language-perl"> <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token variable">$date</span><span class="token operator">=~</span><span class="token operator">/</span><span class="token operator">-</span><span class="token operator">?</span><span class="token operator">\</span>d<span class="token operator">*</span> <span class="token punctuation">(</span><span class="token operator">?</span><span class="token punctuation">:</span> <span class="token punctuation">(</span><span class="token operator">?</span><span class="token punctuation">:</span> <span class="token comment"># 29. feb. im schaltjahr </span> <span class="token punctuation">(</span><span class="token operator">?</span><span class="token punctuation">:</span><span class="token punctuation">[</span><span class="token number">02468</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">048</span><span class="token punctuation">]</span><span class="token operator">|</span><span class="token punctuation">[</span><span class="token number">13579</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">26</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># jahrhundert durch 4 teilbar </span> <span class="token punctuation">(</span><span class="token operator">?</span><span class="token punctuation">:</span><span class="token punctuation">[</span><span class="token number">02468</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">048</span><span class="token punctuation">]</span><span class="token operator">|</span><span class="token punctuation">[</span><span class="token number">13579</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">26</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># jahr durch 4 teilbar </span> <span class="token operator">|</span> <span class="token punctuation">(</span><span class="token operator">?</span><span class="token punctuation">:</span><span class="token punctuation">[</span><span class="token number">02468</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token operator">-</span><span class="token number">35</span><span class="token operator">-</span><span class="token number">79</span><span class="token punctuation">]</span><span class="token operator">|</span><span class="token punctuation">[</span><span class="token number">13579</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">013</span><span class="token operator">-</span><span class="token number">57</span><span class="token operator">-</span><span class="token number">9</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># jahrhundert nicht durch 4 teilbar </span> <span class="token punctuation">(</span><span class="token operator">?</span><span class="token punctuation">:</span><span class="token number">0</span><span class="token punctuation">[</span><span class="token number">48</span><span class="token punctuation">]</span><span class="token operator">|</span><span class="token punctuation">[</span><span class="token number">2468</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">048</span><span class="token punctuation">]</span><span class="token operator">|</span><span class="token punctuation">[</span><span class="token number">13579</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">26</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># jahr durch 4 teilbar ausser volle jahrhunderte </span> <span class="token punctuation">)</span> <span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token operator">-</span><span class="token operator">.</span><span class="token operator">\</span><span class="token operator">/</span><span class="token punctuation">]</span><span class="token operator">?</span><span class="token punctuation">)</span> <span class="token comment"># separator \1 </span> <span class="token number">02</span><span class="token operator">\</span><span class="token number">1</span> <span class="token number">29</span> <span class="token comment"># 29. feb.; wiederholung des separators </span> <span class="token operator">|</span> <span class="token operator">\</span>d<span class="token punctuation">{</span><span class="token number">4</span><span class="token punctuation">}</span> <span class="token comment"># beliebiges jahr </span> <span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token operator">-</span><span class="token operator">.</span><span class="token operator">\</span><span class="token operator">/</span><span class="token punctuation">]</span><span class="token operator">?</span><span class="token punctuation">)</span> <span class="token comment"># separator \2 </span> <span class="token punctuation">(</span><span class="token operator">?</span><span class="token punctuation">:</span> <span class="token punctuation">(</span><span class="token operator">?</span><span class="token punctuation">:</span><span class="token number">0</span><span class="token punctuation">[</span><span class="token number">13578</span><span class="token punctuation">]</span><span class="token operator">|</span><span class="token number">1</span><span class="token punctuation">[</span><span class="token number">02</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># langer monat </span> <span class="token operator">\</span><span class="token number">2</span> <span class="token comment"># wiederholung \2 </span> <span class="token punctuation">(</span><span class="token operator">?</span><span class="token punctuation">:</span><span class="token number">0</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token operator">-</span><span class="token number">9</span><span class="token punctuation">]</span><span class="token operator">|</span><span class="token punctuation">[</span><span class="token number">12</span><span class="token punctuation">]</span><span class="token operator">\</span>d<span class="token operator">|</span><span class="token number">3</span><span class="token punctuation">[</span><span class="token number">01</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># 01 bis 31 </span> <span class="token operator">|</span> <span class="token punctuation">(</span><span class="token operator">?</span><span class="token punctuation">:</span><span class="token number">0</span><span class="token punctuation">[</span><span class="token number">469</span><span class="token punctuation">]</span><span class="token operator">|</span><span class="token number">11</span><span class="token punctuation">)</span> <span class="token comment"># kurzer monat </span> <span class="token operator">\</span><span class="token number">2</span> <span class="token comment"># wiederholung \2 </span> <span class="token punctuation">(</span><span class="token operator">?</span><span class="token punctuation">:</span><span class="token number">0</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token operator">-</span><span class="token number">9</span><span class="token punctuation">]</span><span class="token operator">|</span><span class="token punctuation">[</span><span class="token number">12</span><span class="token punctuation">]</span><span class="token operator">\</span>d<span class="token operator">|</span><span class="token number">30</span><span class="token punctuation">)</span> <span class="token comment"># 01 bis 30 </span> <span class="token operator">|</span> <span class="token number">02</span> <span class="token comment"># februar </span> <span class="token operator">\</span><span class="token number">2</span> <span class="token comment"># wiederholung \2 </span> <span class="token punctuation">(</span><span class="token operator">?</span><span class="token punctuation">:</span><span class="token number">0</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token operator">-</span><span class="token number">9</span><span class="token punctuation">]</span><span class="token operator">|</span><span class="token number">1</span><span class="token operator">\</span>d<span class="token operator">|</span><span class="token number">2</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token operator">-</span><span class="token number">8</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># 01 bis 28 </span> <span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token operator">/</span><span class="token operator">x</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token keyword">print</span> <span class="token string">'valid'</span><span class="token operator">.</span><span class="token string">"\n"</span><span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token keyword">else</span><span class="token punctuation">{</span> <span class="token keyword">print</span> <span class="token string">'not valid!'</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <p>hierbei habe ich uebrigens durch backreferencing noch eingebaut, dass man zwei mal dasselbe trennzeichen (was noch immer iso-konform auch der leere string sein darf) verwenden muss.</p> <p>bei bedarf kann man noch ein ^ an den anfang und ein $ an das ende stellen, falls man nicht nur ein datum sucht, sondern wissen will, ob der komplette string eine datumsangabe sein koennte.</p> <p>jetzt hakt der test allerdings noch immer, weil der gregorianische kalender erst 1582 eingefuehrt (und deshalb z.b. der oktober 1582 radikal verkuerzt) wurde (siehe <a href="http://de.wikipedia.org/wiki/Schaltjahr#Gregorianischer_Kalender" rel="nofollow noopener noreferrer">wikipedia</a>).</p> <p>dadurch wuerde der check dann wieder etwas laenger werden. ich poste aber mal nur den teil, der fuer die jahre 1583 bis 9999 zustaendig waere. fuer die zusaetzlichen jahre ab 10000 koennte man beide ausdruecke (also den obigen und den folgenden) mit einem dicken OR kombinieren.</p> <pre><code class="block language-perl"> <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token variable">$date</span><span class="token operator">=~</span><span class="token operator">/</span><span class="token comment"># laesst nur jahre 1583 bis 9999 zu </span> <span class="token punctuation">(</span><span class="token operator">?</span><span class="token punctuation">:</span> <span class="token comment"># 29. feb. im schaltjahr </span> <span class="token punctuation">(</span><span class="token operator">?</span><span class="token punctuation">:</span><span class="token punctuation">[</span><span class="token number">2468</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">048</span><span class="token punctuation">]</span><span class="token operator">|</span><span class="token number">16</span><span class="token operator">|</span><span class="token punctuation">[</span><span class="token number">3579</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">26</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># jahrhundert durch 4 teilbar </span> <span class="token punctuation">(</span><span class="token operator">?</span><span class="token punctuation">:</span><span class="token punctuation">[</span><span class="token number">02468</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">048</span><span class="token punctuation">]</span><span class="token operator">|</span><span class="token punctuation">[</span><span class="token number">13579</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">26</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># jahr durch 4 teilbar </span> <span class="token operator">|</span> <span class="token punctuation">(</span><span class="token operator">?</span><span class="token punctuation">:</span><span class="token punctuation">[</span><span class="token number">2468</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token operator">-</span><span class="token number">35</span><span class="token operator">-</span><span class="token number">79</span><span class="token punctuation">]</span><span class="token operator">|</span><span class="token number">1</span><span class="token punctuation">[</span><span class="token number">789</span><span class="token punctuation">]</span><span class="token operator">|</span><span class="token punctuation">[</span><span class="token number">3579</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">013</span><span class="token operator">-</span><span class="token number">57</span><span class="token operator">-</span><span class="token number">9</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># jahrhundert nicht durch 4 teilbar </span> <span class="token punctuation">(</span><span class="token operator">?</span><span class="token punctuation">:</span><span class="token number">0</span><span class="token punctuation">[</span><span class="token number">48</span><span class="token punctuation">]</span><span class="token operator">|</span><span class="token punctuation">[</span><span class="token number">2468</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">048</span><span class="token punctuation">]</span><span class="token operator">|</span><span class="token punctuation">[</span><span class="token number">13579</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">26</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># jahr durch 4 teilbar ausser volle jahrhunderte </span> <span class="token operator">|</span> <span class="token number">15</span><span class="token punctuation">(</span><span class="token operator">?</span><span class="token punctuation">:</span><span class="token number">88</span><span class="token operator">|</span><span class="token number">9</span><span class="token punctuation">[</span><span class="token number">26</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># beachtung der einfuehrung des gregor. kalenders </span> <span class="token punctuation">)</span> <span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token operator">-</span><span class="token operator">.</span><span class="token operator">\</span><span class="token operator">/</span><span class="token punctuation">]</span><span class="token operator">?</span><span class="token punctuation">)</span> <span class="token comment"># separator \1 </span> <span class="token number">02</span><span class="token operator">\</span><span class="token number">1</span> <span class="token number">29</span> <span class="token comment"># 29. feb.; wiederholung des separators \1 </span> <span class="token operator">|</span> <span class="token punctuation">(</span><span class="token operator">?</span><span class="token punctuation">:</span><span class="token punctuation">[</span><span class="token number">2</span><span class="token operator">-</span><span class="token number">9</span><span class="token punctuation">]</span><span class="token operator">\</span>d<span class="token operator">\</span>d<span class="token operator">\</span>d<span class="token operator">|</span><span class="token number">1</span><span class="token punctuation">[</span><span class="token number">6</span><span class="token operator">-</span><span class="token number">9</span><span class="token punctuation">]</span><span class="token operator">\</span>d<span class="token operator">\</span>d<span class="token operator">|</span><span class="token number">159</span><span class="token operator">\</span>d<span class="token operator">|</span><span class="token number">158</span><span class="token punctuation">[</span><span class="token number">3</span><span class="token operator">-</span><span class="token number">9</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># beliebiges jahr, ab 1583 </span> <span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token operator">-</span><span class="token operator">.</span><span class="token operator">\</span><span class="token operator">/</span><span class="token punctuation">]</span><span class="token operator">?</span><span class="token punctuation">)</span> <span class="token comment"># separator \2 </span> <span class="token punctuation">(</span><span class="token operator">?</span><span class="token punctuation">:</span> <span class="token punctuation">(</span><span class="token operator">?</span><span class="token punctuation">:</span><span class="token number">0</span><span class="token punctuation">[</span><span class="token number">13578</span><span class="token punctuation">]</span><span class="token operator">|</span><span class="token number">1</span><span class="token punctuation">[</span><span class="token number">02</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># langer monat </span> <span class="token operator">\</span><span class="token number">2</span> <span class="token comment"># wiederholung \2 </span> <span class="token punctuation">(</span><span class="token operator">?</span><span class="token punctuation">:</span><span class="token number">0</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token operator">-</span><span class="token number">9</span><span class="token punctuation">]</span><span class="token operator">|</span><span class="token punctuation">[</span><span class="token number">12</span><span class="token punctuation">]</span><span class="token operator">\</span>d<span class="token operator">|</span><span class="token number">3</span><span class="token punctuation">[</span><span class="token number">01</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># 01 bis 31 </span> <span class="token operator">|</span> <span class="token punctuation">(</span><span class="token operator">?</span><span class="token punctuation">:</span><span class="token number">0</span><span class="token punctuation">[</span><span class="token number">469</span><span class="token punctuation">]</span><span class="token operator">|</span><span class="token number">11</span><span class="token punctuation">)</span> <span class="token comment"># kurzer monat </span> <span class="token operator">\</span><span class="token number">2</span> <span class="token comment"># wiederholung \2 </span> <span class="token punctuation">(</span><span class="token operator">?</span><span class="token punctuation">:</span><span class="token number">0</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token operator">-</span><span class="token number">9</span><span class="token punctuation">]</span><span class="token operator">|</span><span class="token punctuation">[</span><span class="token number">12</span><span class="token punctuation">]</span><span class="token operator">\</span>d<span class="token operator">|</span><span class="token number">30</span><span class="token punctuation">)</span> <span class="token comment"># 01 bis 30 </span> <span class="token operator">|</span> <span class="token number">02</span> <span class="token comment"># februar </span> <span class="token operator">\</span><span class="token number">2</span> <span class="token comment"># wiederholung \2 </span> <span class="token punctuation">(</span><span class="token operator">?</span><span class="token punctuation">:</span><span class="token number">0</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token operator">-</span><span class="token number">9</span><span class="token punctuation">]</span><span class="token operator">|</span><span class="token number">1</span><span class="token operator">\</span>d<span class="token operator">|</span><span class="token number">2</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token operator">-</span><span class="token number">8</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># 01 bis 28 </span> <span class="token punctuation">)</span><span class="token operator">/</span><span class="token operator">x</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token keyword">print</span> <span class="token string">'valid'</span><span class="token operator">.</span><span class="token string">"\n"</span><span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token keyword">else</span><span class="token punctuation">{</span> <span class="token keyword">print</span> <span class="token string">'not valid!'</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <p>getestet habe ich den kram jetzt allerdings nicht, das darf jemand anders machen. *duck*</p> <p>prost<br> seth</p> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949969#m949969 Gunnar Bittersmann self2006@gunnarbittersmann.de http://gunnarbittersmann.de/ 2006-03-25T18:54:10Z 2006-03-25T18:54:10Z Regular Expression für ein Datum <p>Hello out there!</p> <blockquote> <p>aaaber es sind noch immer fehler drin, weil durch die negierten zeichenklassen z.b. '2a04-02-01' zugelassen wird.</p> </blockquote> <p>Argl. Da wollte ich an der falschen Stelle ein paar Zeichen sparen.</p> <p>Also [1235679] statt [^048]. [1-35-79] spart wohl nichts. Geht eigentlich auch sowas: [\d^048]?</p> <blockquote> <p>weil niemand der grossen betriebssystem-hersteller an das y10k-problem dachte</p> </blockquote> <p>LOL.</p> <p>Eigentlich dachte ich an die heutigen Bedürfnisse – der Wahrsager, die heute schon das Ende der Welt für 10235-10-21T16:23Z vorhersagen.</p> <blockquote> <p>jetzt hakt der test allerdings noch immer, weil der gregorianische kalender erst 1582 eingefuehrt</p> </blockquote> <p>Das Wann ist abhängig vom Wo.</p> <p>Und ja, das Problem war mir bewusst, das wollte ich mit „heutige Schaltjahrregel auf gesamten Bereich angewandt“ angedeutet haben.</p> <blockquote> <p>hierbei habe ich uebrigens durch backreferencing noch eingebaut</p> </blockquote> <p>Verdient das dann eigentlich noch den Namen „regulärer Ausdruck“ im Sinne der theoretischen Informatik? Oder werden damit nicht reguläre, sondern kontextsensitive Sprachen beschrieben? Mal nachdenken ...</p> <p>See ya up the road,<br> Gunnar</p> <div class="signature">-- <br> “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen) </div> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949970#m949970 seth email_selfforum@wg-karlsruhe.de http://www.bierdatenbank.de 2006-03-25T20:58:53Z 2006-03-25T20:58:53Z Regular Expression für ein Datum <p>gudn tach Gunnar!</p> <blockquote> <p>Also [1235679] statt [^048]. [1-35-79] spart wohl nichts.</p> </blockquote> <p>ja, ist imho bloss etwas uebersichtlicher.</p> <blockquote> <p>Geht eigentlich auch sowas: [\d^048]?</p> </blockquote> <p>ja, aber es matcht nicht, was moechtest. innerhalb von zeichenklassen-definitionen gilt: negiert ^ die zeichenklasse nur dann, wenn es das erste zeichen nach [ ist. sonst hat es keine meta-bedeutung.</p> <p>was du moechtest, laesst sich dennoch bewerkstelligen, und zwar mit dem alten hellseher-trick:<br> /(?=\d)[^048]/</p> <p>(?=\d) verlangt, dass das naechste zeichen eine ziffer ist.<br> [^048] verlangt, dass das zeichen weder 0, 4 noch 8 sein darf.</p> <blockquote> <blockquote> <p>weil niemand der grossen betriebssystem-hersteller an das y10k-problem dachte</p> </blockquote> <p>LOL.</p> <p>Eigentlich dachte ich an die heutigen Bedürfnisse – der Wahrsager, die heute schon das Ende der Welt für 10235-10-21T16:23Z vorhersagen.</p> </blockquote> <p>aeh, hat das mit 10235 einen hintergrund? (man weiss ja nie.)</p> <blockquote> <blockquote> <p>jetzt hakt der test allerdings noch immer, weil der gregorianische kalender erst 1582 eingefuehrt</p> </blockquote> <p>Das Wann ist abhängig vom Wo.</p> </blockquote> <p>ja, das ist wahr. aber ich dachte, dass (heutzutage) die daten vor 1582 normalerweise nicht nach dem greg. (sondern dem julianischen) kalender angegeben werden.<br> ach ja, und bei deinem regulaeren ausdruck war noch nicht beruecksichtigt, dass es das jahr 0 nicht gab.</p> <blockquote> <p>Und ja, das Problem war mir bewusst [..]</p> </blockquote> <p>wollte ich auch gar nicht infrage stellen, sondern bloss noch als verbesserung vorschlagen.</p> <blockquote> <blockquote> <p>hierbei habe ich uebrigens durch backreferencing noch eingebaut</p> </blockquote> <p>Verdient das dann eigentlich noch den Namen „regulärer Ausdruck“ im Sinne der theoretischen Informatik?</p> </blockquote> <p>nein.</p> <blockquote> <p>Oder werden damit nicht reguläre, sondern kontextsensitive Sprachen beschrieben? Mal nachdenken ...</p> </blockquote> <p>beides.</p> <p>prost<br> seth</p> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949971#m949971 Gunnar Bittersmann self2006@gunnarbittersmann.de http://gunnarbittersmann.de/ 2006-03-25T22:27:58Z 2006-03-25T22:27:58Z Regular Expression für ein Datum <p>Hello out there!</p> <blockquote> <blockquote> <p>Also [1235679] statt [^048]. [1-35-79] spart wohl nichts.<br> ja, ist imho bloss etwas uebersichtlicher.</p> </blockquote> </blockquote> <p>YMMV, aber ich erspare mir lieber die Überlegung, wofür der '-' steht.</p> <blockquote> <p>dass es das jahr 0 nicht gab.</p> </blockquote> <p>War mir auch so. Im aktuellen Wikipedia-Artikel las sich das aber anders. Aber schon möglich, dass der sich nicht auf eine aktuelle Version der ISO-Norm bezieht.</p> <p>Doc Emmett Brown: “...or witness the birth of Christ?” ("DEC 25 0000" auf dem Display im DeLorean)</p> <blockquote> <blockquote> <p>Oder werden damit nicht reguläre, sondern kontextsensitive Sprachen beschrieben? Mal nachdenken ...<br> beides.</p> </blockquote> </blockquote> <p>:-) Ja, die Frage war ja schon blöd gestellt; Teilmenge und so. „nicht _nur_ reguläre“ hätt besser geklungen.</p> <p>See ya up the road,<br> Gunnar</p> <div class="signature">-- <br> “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen) </div> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949972#m949972 seth email_selfforum@wg-karlsruhe.de http://www.bierdatenbank.de 2006-03-25T23:49:09Z 2006-03-25T23:49:09Z Regular Expression für ein Datum <p>gudn tach Gunnar!</p> <blockquote> <blockquote> <p>dass es das jahr 0 nicht gab.</p> </blockquote> <p>War mir auch so. Im aktuellen Wikipedia-Artikel las sich das aber anders. Aber schon möglich, dass der sich nicht auf eine aktuelle Version der ISO-Norm bezieht.</p> </blockquote> <p>oh, ich hab's erst jetzt <a href="http://de.wikipedia.org/wiki/Jahr_Null" rel="nofollow noopener noreferrer">nachgelesen</a>.<br> zumindest scheint es weitaus komplizierter (z.b. "Dieses Jahr Null beginnt am 3. Januar 1 vor und endet am 2. Januar 1 nach Christus") zu sein, als ich bisher annahm. nun gut, dann war dein jahr 0 wohl je nach norm doch kein fehler.</p> <blockquote> <p>Doc Emmett Brown: “...or witness the birth of Christ?” ("DEC 25 0000" auf dem Display im DeLorean)</p> </blockquote> <p>hihi, ist mir damals gar nicht aufgefallen, aber jetzt wo du's sagst...</p> <p>prost<br> seth</p> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949975#m949975 Rebecca 2006-03-24T09:08:37Z 2006-03-24T09:08:37Z Regular Expression für ein Datum <p>Hallo,<br> danke für die Antwort.</p> <blockquote> <p>Möchtest du nicht lieber Quantifier verwenden? Dann sähe es so aus:</p> <p>/^\d{2}[/.-]\d{2}[/.-]\d{4}$/</p> </blockquote> <p>Das kannte ich noch nicht. Schaut besser aus, ja.</p> <blockquote> <p>Allerdings akzeptiert dieser RegExp auch ein Datum wie "99.00.8652", willst du das?</p> </blockquote> <p>Nein das will ich nicht. Das war aber auch im Format /d/d/d/d auch der Fall. Kann man das mit RegExp einschränken, so dass nur Jahreszahlen von 0000 bis 2099 möglich sind? Ob es Sinn macht weiss ich allerdings noch nicht;-)</p> <blockquote> <p>Was genau funktioniert nicht? Welche Programmiersprache verwendest du? Gibt es eine Fehlermeldung?</p> </blockquote> <p>Es kam die Meldung "Invalid Range in character class". Das ganze in JavaScript. Ich hab allerdings [./-] verwendet und so funktionierts. Nun werden die Trennzeichen "/", "-" und "." akzeptiert.</p> <p>Liebe Grüße<br> Rebecca</p> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949980#m949980 Siechfred torsten@anaboe.net http://www.steuerwerkstatt.de 2006-03-24T09:26:59Z 2006-03-24T09:26:59Z Regular Expression für ein Datum <blockquote> <blockquote> <p>Allerdings akzeptiert dieser RegExp auch ein Datum wie "99.00.8652", willst du das?<br> Nein das will ich nicht. Das war aber auch im Format /d/d/d/d auch der Fall. Kann man das mit RegExp einschränken, so dass nur Jahreszahlen von 0000 bis 2099 möglich sind? Ob es Sinn macht weiss ich allerdings noch nicht;-)</p> </blockquote> </blockquote> <p>Ja, das geht mit <a href="http://forum.de.selfhtml.org/archiv/2005/6/t109413/#m683611" rel="nofollow noopener noreferrer">Lookarounds</a>.</p> <blockquote> <p>Es kam die Meldung "Invalid Range in character class". Das ganze in JavaScript.</p> </blockquote> <p>Du hast nicht bedacht, dass ein "-" innerhalb einer Zeichenklasse ein "von ... bis" kennzeichnet. Schreibst du beispielsweise "[0-9]", beinhaltet die Zeichenklasse die Ziffern 0 bis 9. Wenn du schreibst [/-.], interpretiert Javascript dies als "alle Zeichen vom Slash bis zum Punkt", was aber falsch ist, da laut <a href="http://www.torsten-horn.de/techdocs/ascii.htm" rel="nofollow noopener noreferrer">ASCII-Tabelle</a> erst der Punkt und dann der Slash kommt. Ergo ist ein "von ... bis" unlogisch, was Javascript dir mit der Fehlermeldung signalisiert hat. Auf die Besonderheit des Bindestrichs hatte ich in <a href="http://forum.de.selfhtml.org/archiv/2006/3/t125050/#m806071" rel="nofollow noopener noreferrer">diesem Posting</a> schon hingewiesen.</p> <blockquote> <p>Ich hab allerdings [./-] verwendet und so funktionierts.</p> </blockquote> <p>Ja, weil der Bindestrich am Ende steht und somit nicht die Funktion eines "von ... bis" haben kann. Übrigens erlaubst du auch den Backslash als Trennzeichen, es sei denn, es soll der Maskierung dienen, die jedoch innerhalb von Zeichenklassen nicht nötig ist. Deine Zeichenklasse sieht daher so aus: "[/.-]".</p> <p>Siechfred</p> <div class="signature">-- <br> Hier könnte Ihre Werbung stehen.<br> <a href="http://siechfred.kennt-wayne.de/2006/3/schlechte_cover_hard_and_heavy" rel="nofollow noopener noreferrer">Die schlechtesten Cover aus dem Bereich Hard and Heavy</a> || <a href="http://siechfred.kennt-wayne.de/2006/3/schoene_woerter_1" rel="nofollow noopener noreferrer">Schöne Wörter, Teil 1</a> </div> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949977#m949977 dedlfix 2006-03-24T10:01:10Z 2006-03-24T10:01:10Z Regular Expression für ein Datum <p>echo $begrüßung;</p> <blockquote> <blockquote> <p>Allerdings akzeptiert dieser RegExp auch ein Datum wie "99.00.8652", willst du das?<br> Nein das will ich nicht. [...] Kann man das mit RegExp einschränken, so dass nur Jahreszahlen von 0000 bis 2099 möglich sind? Ob es Sinn macht weiss ich allerdings noch nicht;-)</p> </blockquote> </blockquote> <p>Damit löst du vielleicht das Jahreszahlenproblem. Den Monat zu prüfen ist auch noch einfach. Aber nun geht es mit dem Tag weiter. Der ist abhängig von Monat und Jahr. Mit einer RegExp kannst du nicht rechnen. Zum Beispiel ist das Prüfen auf Durch-4-Teilbarkeit ist nicht möglich. Damit stößt du an die Grenzen einer Musterprüfung.</p> <p>Wenn du die Datumsprüfung nicht nur zum Üben machst, schlage ich vor, dass du dir eine fertige Datumsklasse oder Datumsprüffunktion für deine Programmiersprache suchst oder selbst programmierst.</p> <p>echo "$verabschiedung $name";</p> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949976#m949976 Gunnar Bittersmann self2006@gunnarbittersmann.de http://gunnarbittersmann.de/ 2006-03-24T10:15:55Z 2006-03-24T10:15:55Z Regular Expression für ein Datum <p>Hello out there!</p> <blockquote> <p>Kann man das mit RegExp einschränken, so dass nur Jahreszahlen von 0000 bis 2099 möglich sind? Ob es Sinn macht weiss ich allerdings noch nicht;-)</p> </blockquote> <p>Wenn du auf ein gültiges Datum prüfen willst, muss du auch die unterschiedlichen Monatslängen berücksichtigen, dazu auch Schaltjahre, je nach Zeitrahmrn dabei auch die 400-Jahre-Regel.</p> <p>All das geht mit einem regulären Ausdruck, der aber ziemlich kopliziert sein dürfte. Ob es Sinn macht ...</p> <p>See ya up the road,<br> Gunnar</p> <div class="signature">-- <br> “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen) </div> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949978#m949978 Gunnar Bittersmann self2006@gunnarbittersmann.de http://gunnarbittersmann.de/ 2006-03-24T10:31:48Z 2006-03-24T10:31:48Z Regular Expression für ein Datum <p>Hello out there!</p> <blockquote> <p>Mit einer RegExp kannst du nicht rechnen. Zum Beispiel ist das Prüfen auf Durch-4-Teilbarkeit ist nicht möglich.</p> </blockquote> <p>Na aber sicher ist es das.</p> <p>Ich hab vor ein paar Tagen mal einen deterministischen endlichen Automaten (DFA) gebaut, der Daten (ISO 8601) erkennt (incl. Schaltjahrregel). Die Mengen der von DFAs erkannten Sprachen (Eingaben) und der von regulären Ausdrücken erkannten sind identisch – das ist die Menge der regulären (Typ 3 in der Chomsky-Hierarchie) Sprachen.</p> <p>Also gibt es auch einen regulären Ausdruck für Daten. Wie komplizeiert der ist, ist eine andere Frage.</p> <p>See ya up the road,<br> Gunnar</p> <div class="signature">-- <br> “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen) </div> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949979#m949979 Gunnar Bittersmann self2006@gunnarbittersmann.de http://gunnarbittersmann.de/ 2006-03-24T14:43:40Z 2006-03-24T14:43:40Z Regular Expression für ein Datum <p>Hello out there!</p> <blockquote> <blockquote> <p>Mit einer RegExp kannst du nicht rechnen. Zum Beispiel ist das Prüfen auf Durch-4-Teilbarkeit ist nicht möglich.</p> </blockquote> <p>Na aber sicher ist es das.</p> </blockquote> <p>... denn bei der Teilbarkeit durch 4 ist gar kein Rechnen erforderlich, sondern nur Zeichenverarbeitung; wie bei der Teilbarkeit durch alle Zahlen der Form [latex]2^m \cdot 5^n \quad (m, n \in \mathbb{N})[/latex]</p> <p>Bei m = n (Teilbarkeit durch Zehnerpotenzen) ist es trivial: \d*0$ matcht alle durch 10 teilbaren Zahlen usw.</p> <p>Bei m = n + 1 auch einfach: \d*[05]$ matcht alle durch 5 teilbaren Zahlen</p> <p>Bei m = n - 1 auch einfach: \d*[02468]$ matcht alle durch 2 teilbaren Zahlen</p> <p>Bei m = n + 2 und m = n - 2 (z.B. Teilbarkeit durch 25 bzw. 4) muss man sich noch die vorletzte Stelle mit ansehen, bei noch größerer Differenz zwischen m und n entsprechend mehr.</p> <p>Je größer die Differenz zwischen m und n ist, desto komplizierter wird der reguläre Ausdruck, aber möglich ist es immer.</p> <p>See ya up the road,<br> Gunnar</p> <div class="signature">-- <br> “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen) </div> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949981#m949981 Rebecca 2006-03-24T10:31:34Z 2006-03-24T10:31:34Z Regular Expression für ein Datum <p>Hallo Siechfried,</p> <p>vielen Dank für Deine Antwort. Scheinst ein Profi in Sachen regular expressions zu sein.</p> <p>Dein Posting war sehr detailliert und aufschlußreich.</p> <p>Liebe Grüße<br> Rebecca</p> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949983#m949983 Rebecca 2006-03-24T09:01:44Z 2006-03-24T09:01:44Z Regular Expression für ein Datum <p>Hallo Struppi,<br> danke für die Antwort.</p> <blockquote> <p>Du musst, soweit ich weiß, nur '/' innerhalb der eckigen Klammern maskieren.</p> </blockquote> <p>wenn ich aber [/-.] verwende erscheint eine Fehlermeldung "invalid range in character class". Was bedeutet das?</p> <p>Ich habe nun [./-] verwendet und es funktioniert.<br> Danke</p> <p>Liebe Grüße<br> Rebecca</p> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949984#m949984 seth_not@home email_selfforum@wg-karlsruhe.de 2006-03-24T09:38:28Z 2006-03-24T09:38:28Z Regular Expression für ein Datum <p>gudn tach!</p> <blockquote> <blockquote> <p>Du musst, soweit ich weiß, nur '/' innerhalb der eckigen Klammern maskieren.</p> </blockquote> </blockquote> <p>brackets und minus-zeichen u.u. auch.</p> <blockquote> <p>wenn ich aber [/-.] verwende erscheint eine Fehlermeldung "invalid range in character class". Was bedeutet das?</p> </blockquote> <p>mit dem - gibt man in character classes (zeichenklassen), also den in brackets (eckigen klammern) eingeschlossenen zeichen, einen bereich (range) an.<br> beispiele:<br> [2-6] ist die zeichenklasse der ziffern 2 bis 6, man koennte auch [23456] schreiben.<br> [a-z] ist die zeichenklasse der zeichen a bis z, also der 26 konventionellen kleinbuchstaben.<br> "invalid range in character class" heisst also, dass der bereich [/-.], also alle zeichen vom / bis zum ., nicht zugelassen ist.</p> <p>wenn das - nicht als "bis" verwendet werden soll, muss es maskiert werden oder z.b. am ende der klasse stehen.[1]</p> <blockquote> <p>Ich habe nun [./-] verwendet und es funktioniert.</p> </blockquote> <p>wundert mich. eigentlich haette ich erwartet, dass eine fehlermeldung kommt a la "end of character class expected".</p> <p>[1] <a href="http://perldoc.perl.org/perlre.html" rel="nofollow noopener noreferrer">link zum thema, mit mehr details</a></p> <p>prost<br> seth</p> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949994#m949994 seth_not@home email_selfforum@wg-karlsruhe.de 2006-03-24T09:47:20Z 2006-03-24T09:47:20Z Regular Expression für ein Datum <p>gudn tach!</p> <blockquote> <blockquote> <blockquote> <p>Du musst, soweit ich weiß, nur '/' innerhalb der eckigen Klammern maskieren.</p> </blockquote> </blockquote> <p>brackets und minus-zeichen u.u. auch.</p> </blockquote> <p>nee. "auch" stimmt nicht. '/' braucht innerhalb von character classes nicht maskiert zu werden.</p> <p>prost<br> seth</p> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949985#m949985 Siechfred torsten@anaboe.net http://www.steuerwerkstatt.de 2006-03-24T09:50:53Z 2006-03-24T09:50:53Z Regular Expression für ein Datum <p>Hell-O!</p> <blockquote> <p>brackets und minus-zeichen u.u. auch.</p> </blockquote> <p>Ja, aber nicht zwingend, kommt drauf an, wo sie stehen. Übrigens, kennst du einen Anwendungsfall, in dem der Slash in einer Zeichenklasse maskiert werden müsste? Mir ist jedenfalls keiner bekannt.</p> <blockquote> <p>wenn das - nicht als "bis" verwendet werden soll, muss es maskiert werden oder z.b. am ende der klasse stehen.[1]</p> </blockquote> <p>Oder am Anfang.</p> <blockquote> <p>[1] <a href="http://perldoc.perl.org/perlre.html" rel="nofollow noopener noreferrer">link zum thema, mit mehr details</a></p> </blockquote> <p><a href="http://perldoc.perl.org/perlre.html#Version-8-Regular-Expressions-regular-expression%2c-version-8-regex%2c-version-8-regexp%2c-version-8" rel="nofollow noopener noreferrer">Link zu den Details</a> ;-)</p> <blockquote> <p>prost</p> </blockquote> <p>Mahlzeit.</p> <p>Siechfred</p> <div class="signature">-- <br> Hier könnte Ihre Werbung stehen.<br> <a href="http://siechfred.kennt-wayne.de/2006/3/schlechte_cover_hard_and_heavy" rel="nofollow noopener noreferrer">Die schlechtesten Cover aus dem Bereich Hard and Heavy</a> || <a href="http://siechfred.kennt-wayne.de/2006/3/schoene_woerter_1" rel="nofollow noopener noreferrer">Schöne Wörter, Teil 1</a> </div> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949993#m949993 seth_not@home email_selfforum@wg-karlsruhe.de 2006-03-24T10:00:08Z 2006-03-24T10:00:08Z Regular Expression für ein Datum <p>gudn tach!</p> <blockquote> <blockquote> <p>brackets und minus-zeichen u.u. auch.</p> </blockquote> <p>Ja, aber nicht zwingend, kommt drauf an, wo sie stehen.</p> </blockquote> <p>u.u. = unter umstaenden. ;-)</p> <blockquote> <p>Übrigens, kennst du einen Anwendungsfall, in dem der Slash in einer Zeichenklasse maskiert werden müsste?</p> </blockquote> <p>habe mich noch nach ingrid-manier <a href="https://forum.selfhtml.org/?t=126272&m=814357" rel="noopener noreferrer">korrigiert</a>.<br> aber das back-slash muss iirc u.u. maskiert werden ([x\d] vs. [x\d]).</p> <blockquote> <blockquote> <p>wenn das - nicht als "bis" verwendet werden soll, muss es maskiert werden oder z.b. am ende der klasse stehen.[1]</p> </blockquote> <p>Oder am Anfang.</p> </blockquote> <p>...oder z.b. zwischen \d und \w (innerhalb einer klassendefinition)... deswegen habe ich "z.b." geschrieben und die fussnote gesetzt. ;-p</p> <p>prost<br> seth</p> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949986#m949986 seth email_selfforum@wg-karlsruhe.de http://www.bierdatenbank.de 2006-03-24T18:39:02Z 2006-03-24T18:39:02Z Regular Expression für ein Datum <p>gudn tach!</p> <blockquote> <p>kennst du einen Anwendungsfall, in dem der Slash in einer Zeichenklasse maskiert werden müsste? Mir ist jedenfalls keiner bekannt.</p> </blockquote> <p><a href="http://javascript.jstruebig.de/javascript/39/" rel="nofollow noopener noreferrer">Struppi berichtet afais von sowas.</a></p> <p>prost<br> seth</p> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949987#m949987 Struppi struebig@gmx.net http://javascript.jstruebig.de/ 2006-03-24T19:57:03Z 2006-03-24T19:57:03Z Regular Expression für ein Datum <blockquote> <blockquote> <p>kennst du einen Anwendungsfall, in dem der Slash in einer Zeichenklasse maskiert werden müsste? Mir ist jedenfalls keiner bekannt.</p> </blockquote> <p><a href="http://javascript.jstruebig.de/javascript/39/" rel="nofollow noopener noreferrer">Struppi berichtet afais von sowas.</a></p> </blockquote> <p>Ich weiß auch nicht wie ich die Fehler anders deuten soll:</p> <p>Ich hab auf den Seiten einen Error Log eingebaut:</p> <p>Borwser String: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20060130 Red Hat/1.7.12-1.4.2<br> Fehler: unterminated character class<br> Zeile: 188<br> Datei: http://javascript.jstruebig.de/javascript/39/</p> <p>Die Zeile sah vormals so aus:<br> string = string.replace(/[-/]/g, '.'); // Trennzeichen normalisieren</p> <p>Struppi.</p> <div class="signature">-- <br> <a href="http://javascript.jstruebig.de/" rel="nofollow noopener noreferrer">Javascript ist toll</a> </div> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949991#m949991 seth email_selfforum@wg-karlsruhe.de http://www.bierdatenbank.de 2006-03-24T22:36:50Z 2006-03-24T22:36:50Z Regular Expression für ein Datum <p>gudn tach!</p> <blockquote> <p>Ich hab auf den Seiten einen Error Log eingebaut:</p> </blockquote> <p>oh, <a href="http://javascript.jstruebig.de/js/errorlog.js" rel="nofollow noopener noreferrer">das</a> ist ja geil!</p> <blockquote> <p>Borwser String: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20060130 Red Hat/1.7.12-1.4.2</p> </blockquote> <p>hui, ist der fehler von heute nachmittag so zwischen 14:00 und 15:00? dann koennte ich das gewesen sein? bei mir funzte das script naemlich nicht, aber aus zeitgruenden habe ich mich nicht naeher damit befasst. ich kann am montag noch mal danach schauen.</p> <p>prost<br> seth</p> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949988#m949988 Siechfred torsten@anaboe.net http://www.steuerwerkstatt.de 2006-03-25T11:26:23Z 2006-03-25T11:26:23Z Regular Expression für ein Datum <p>Hell-O!</p> <blockquote> <blockquote> <p><a href="http://javascript.jstruebig.de/javascript/39/" rel="nofollow noopener noreferrer">Struppi berichtet afais von sowas.</a><br> Ich weiß auch nicht wie ich die Fehler anders deuten soll:<br> Fehler: unterminated character class</p> </blockquote> </blockquote> <p>Den es sinnigerweise nur bei string.replace gibt. Scheinbar verwirrt Javascript (und nur Javascript!) der zweite Slash, der nach dort geltender Lesart den RegExp beendet. Leider scheint JS keinen anderen Begrenzer zu akzeptieren. Ich habe das mal kurz getestet:</p> <pre><code class="block language-javascript"><span class="token keyword">var</span> foo <span class="token operator">=</span> window<span class="token punctuation">.</span><span class="token function">prompt</span><span class="token punctuation">(</span><span class="token string">'Foo sei ...'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// hier muss nichts maskiert werden: </span> <span class="token keyword">var</span> re <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">RegExp</span><span class="token punctuation">(</span><span class="token string">'^[0-9][-./][0-9]$'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">if</span><span class="token punctuation">(</span>re<span class="token punctuation">.</span><span class="token function">test</span><span class="token punctuation">(</span>foo<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token function">alert</span><span class="token punctuation">(</span>foo<span class="token operator">+</span><span class="token string">' passt'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">else</span> <span class="token function">alert</span><span class="token punctuation">(</span>foo<span class="token operator">+</span><span class="token string">' passt nicht'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// hier muss zwingend der Slash maskiert werden: </span> foo <span class="token operator">=</span> foo<span class="token punctuation">.</span><span class="token function">replace</span><span class="token punctuation">(</span><span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">[-.\/]</span><span class="token regex-delimiter">/</span></span><span class="token punctuation">,</span> <span class="token string">'#'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">alert</span><span class="token punctuation">(</span>foo<span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>Zusammengefasst scheint es zu bedeuten:</p> <p>Wird ein neues RegExp-Objekt erzeugt, verhält sich die Zeichenklasse wie von mir aus der Perl-Welt erwartet. Sobald man den RegExp ungequoted in einem replace, match oder search notiert bzw. die JS-eigene Automatik zur Erzeugung eines Regulären Ausdrucks (<code class="language-Javascript"><span class="token keyword">var</span> re <span class="token operator">=</span> <span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">whatever</span><span class="token regex-delimiter">/</span></span><span class="token punctuation">;</span></code>) nutzt, ist jeder Slash, der kein Begrenzer ist, zumindest in JS zwingend zu maskieren.</p> <p>Aber vielleicht ergeben eure Tests ja noch was ganz anderes.</p> <p>Siechfred</p> <div class="signature">-- <br> Hier könnte Ihre Werbung stehen.<br> <a href="http://siechfred.kennt-wayne.de/2006/3/schlechte_cover_hard_and_heavy" rel="nofollow noopener noreferrer">Die schlechtesten Cover aus dem Bereich Hard and Heavy</a> || <a href="http://siechfred.kennt-wayne.de/2006/3/schoene_woerter_1" rel="nofollow noopener noreferrer">Schöne Wörter, Teil 1</a> </div> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949989#m949989 seth_not@home email_selfforum@wg-karlsruhe.de 2006-03-28T08:58:08Z 2006-03-28T08:58:08Z Regular Expression für ein Datum <p>gudn tach!</p> <blockquote> <p>Scheinbar verwirrt Javascript (und nur Javascript!) der zweite Slash, der nach dort geltender Lesart den RegExp beendet.</p> </blockquote> <p>s/scheinbar /anscheinend /i<br> s/(.+!) //</p> <p>in perl kann das auch zu problemen fuehren:</p> <p>text.pl</p> <pre><code class="block language-perl"> <span class="token number">1</span> <span class="token comment">#!/usr/bin/perl </span> <span class="token number">2</span> <span class="token keyword">use</span> strict<span class="token punctuation">;</span> <span class="token number">3</span> <span class="token number">4</span> <span class="token keyword">my</span> <span class="token variable">$str</span><span class="token operator">=</span><span class="token string">'/prost/seth/'</span><span class="token punctuation">;</span> <span class="token number">5</span> <span class="token variable">$str</span><span class="token operator">=~</span><span class="token regex">s/[/]/</span><span class="token operator">\</span>n<span class="token operator">/</span>g<span class="token punctuation">;</span> <span class="token number">6</span> <span class="token keyword">print</span> <span class="token variable">$str</span><span class="token punctuation">;</span> </code></pre> <p>$ ./text.pl<br> Unmatched [ in regex; marked by <-- HERE in m/[ <-- HERE / at text.pl line 5.</p> <p>dagegen:<br> text.pl</p> <pre><code class="block language-perl"> <span class="token number">1</span> <span class="token comment">#!/usr/bin/perl </span> <span class="token number">2</span> <span class="token keyword">use</span> strict<span class="token punctuation">;</span> <span class="token number">3</span> <span class="token number">4</span> <span class="token keyword">my</span> <span class="token variable">$str</span><span class="token operator">=</span><span class="token string">'/prost/seth/'</span><span class="token punctuation">;</span> <span class="token number">5</span> <span class="token variable">$str</span><span class="token operator">=~</span><span class="token regex">s/[\/]/\n/g</span><span class="token punctuation">;</span> <span class="token number">6</span> <span class="token keyword">print</span> <span class="token variable">$str</span><span class="token punctuation">;</span> </code></pre> <p>$ ./text.pl</p> <p>prost<br> seth</p> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949990#m949990 Siechfred torsten@anaboe.net http://www.steuerwerkstatt.de 2006-03-28T12:18:28Z 2006-03-28T12:18:28Z Regular Expression für ein Datum <p>Hell-O!</p> <blockquote> <p>in perl kann das auch zu problemen fuehren:</p> </blockquote> <p>Ja, du hast Recht. Allerdings stellte sich bei mir bisher nicht das Problem, da ich als Begrenzer immer etwas nehme, was im RegExp selber nicht vorkommt (meistens die Tilde), um mir soweit möglich das leidige Maskieren zu ersparen.</p> <blockquote> <p>$str=~s/[/]/\n/g;</p> </blockquote> <p>Sähe bei mir dann so aus:</p> <p>$str =~ s~[/]~\n~g;</p> <p>und funktioniert ohne Maskierung und ohne Fehlermeldung. Wie gesagt, JS scheint aber keinen anderen Begrenzer als den Slash zu akzeptieren.</p> <p>Siechfred</p> <div class="signature">-- <br> Hier könnte Ihre Werbung stehen.<br> <a href="http://siechfred.kennt-wayne.de/2006/3/schlechte_cover_hard_and_heavy" rel="nofollow noopener noreferrer">Die schlechtesten Cover aus dem Bereich Hard and Heavy</a> || <a href="http://siechfred.kennt-wayne.de/2006/3/schoene_woerter_1" rel="nofollow noopener noreferrer">Schöne Wörter, Teil 1</a> </div> https://forum.selfhtml.org/self/2006/mar/24/regular-expression-fuer-ein-datum/949992#m949992 Struppi struebig@gmx.net http://javascript.jstruebig.de/ 2006-03-24T22:46:35Z 2006-03-24T22:46:35Z Regular Expression für ein Datum <blockquote> <blockquote> <p>Ich hab auf den Seiten einen Error Log eingebaut:</p> </blockquote> <p>oh, <a href="http://javascript.jstruebig.de/js/errorlog.js" rel="nofollow noopener noreferrer">das</a> ist ja geil!</p> </blockquote> <p>Alles geklaut :-)<br> Weiß aber nicht mehr woher</p> <blockquote> <blockquote> <p>Borwser String: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20060130 Red Hat/1.7.12-1.4.2</p> </blockquote> <p>hui, ist der fehler von heute nachmittag so zwischen 14:00 und 15:00? dann koennte ich das gewesen sein? bei mir funzte das script naemlich nicht, aber aus zeitgruenden habe ich mich nicht naeher damit befasst. ich kann am montag noch mal danach schauen.</p> </blockquote> <p>Ja: <a href="http://jstruebig.de/cgi-bin/jserror.pl?read=1" rel="nofollow noopener noreferrer">http://jstruebig.de/cgi-bin/jserror.pl?read=1</a></p> <p>Struppi.</p> <div class="signature">-- <br> <a href="http://javascript.jstruebig.de/" rel="nofollow noopener noreferrer">Javascript ist toll</a> </div>