tag:forum.selfhtml.org,2005:/self Frage zum Wiki-Artikel „substr“ – SELFHTML-Forum 2022-11-25T09:09:32Z https://forum.selfhtml.org/self/2022/nov/24/frage-zum-wiki-artikel-substr/1804064#m1804064 Uwe 2022-11-24T11:08:38Z 2022-11-24T11:08:38Z Frage zum Wiki-Artikel „substr“ <p>substr() gehört offenbar nicht zu ES6 und wird bei Mozilla als "deprecated" geführt. Das sollte hier angegeben werden.</p> https://forum.selfhtml.org/self/2022/nov/24/frage-zum-wiki-artikel-substr/1804068#m1804068 Matthias Scharwies mscharwies@selfhtml.org 2022-11-24T12:04:37Z 2022-11-24T12:04:37Z Frage zum Wiki-Artikel „substr“ <p>Servus!</p> <blockquote> <p>substr() gehört offenbar nicht zu ES6 und wird bei Mozilla als "deprecated" geführt. Das sollte hier angegeben werden.</p> </blockquote> <p>Danke, erledigt.</p> <p>Hättest du aber auch selbst tun können - es ist ein Wiki!</p> <p>Herzliche Grüße</p> <p>Matthias Scharwies</p> <div class="signature">-- <br> Eigentlich hatte ich heute <a href="https://wiki.selfhtml.org/wiki/Kategorie:ToDo" rel="nofollow noopener noreferrer">viel vor</a> - jetzt habe ich morgen viel vor! </div> https://forum.selfhtml.org/self/2022/nov/24/frage-zum-wiki-artikel-substr/1804079#m1804079 Felix Riesterer https://felix-riesterer.de 2022-11-24T16:40:29Z 2022-11-24T16:40:29Z Frage zum Wiki-Artikel „substr“ <p>Lieber Uwe,</p> <blockquote> <p>substr() gehört offenbar nicht zu ES6 und wird bei Mozilla als "deprecated" geführt. Das sollte hier angegeben werden.</p> </blockquote> <p>das Problem daran ist für mich, dass es für <code class="language-javascript"><span class="token string">"abcdefg"</span><span class="token punctuation">.</span><span class="token function">substr</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">2</span><span class="token punctuation">)</span> <span class="token comment">// "fg"</span></code> keine sinnvolle Entsprechung mit <code class="language-javascript">String<span class="token punctuation">.</span><span class="token function">substring</span><span class="token punctuation">(</span><span class="token punctuation">)</span></code> gibt. Wenn die für <code class="language-javascript">String<span class="token punctuation">.</span><span class="token function">substring</span><span class="token punctuation">(</span><span class="token punctuation">)</span></code> keine negativen Parameter einführen, geht mit der Deprecation definitiv Funktionalität verloren.</p> <p>Liebe Grüße</p> <p>Felix Riesterer</p> https://forum.selfhtml.org/self/2022/nov/24/frage-zum-wiki-artikel-substr/1804080#m1804080 Rolf B 2022-11-24T16:42:14Z 2022-11-24T16:42:14Z Frage zum Wiki-Artikel „substr“ <p>Hallo Uwe,</p> <p>Das ist nicht falsch, aber auch nicht ganz richtig.</p> <p>Die Spec verlangt von Browsern, dass sie substr implementieren, vor allem deshalb, weil anderenfalls die Hälfte aller JavaScript Programme der Welt verrecken würde. Ich werde daher zu Matthias' Änderung noch etwas nachtragen, sobald ich an einem geeigneten Gerät sitze…</p> <p>Außerhalb eines Browsers sieht es anders aus. Wie es in node.js jetzt und in Zukunft aussieht, wäre einer Recherche wert.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - obstruxi </div> https://forum.selfhtml.org/self/2022/nov/24/frage-zum-wiki-artikel-substr/1804081#m1804081 Felix Riesterer https://felix-riesterer.de 2022-11-24T16:49:53Z 2022-11-24T16:49:53Z Frage zum Wiki-Artikel „substr“ <p>Hallo Ingrid,</p> <blockquote> <p>das Problem daran ist für mich, dass es für <code class="language-javascript"><span class="token string">"abcdefg"</span><span class="token punctuation">.</span><span class="token function">substr</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">2</span><span class="token punctuation">)</span> <span class="token comment">// "fg"</span></code> keine sinnvolle Entsprechung mit <code class="language-javascript">String<span class="token punctuation">.</span><span class="token function">substring</span><span class="token punctuation">(</span><span class="token punctuation">)</span></code> gibt.</p> </blockquote> <p>die MDN <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr#description" rel="nofollow noopener noreferrer">pflichtet bei und sagt</a>:</p> <blockquote> <p>Although you are encouraged to avoid using substr(), there is no trivial way to migrate substr() to either slice() or substring() in legacy code without essentially writing a polyfill for substr(). For example, str.substr(a, l), str.slice(a, a + l), and str.substring(a, a + l) all have different results when str = "01234", a = 1, l = -2 — substr() returns an empty string, slice() returns "123", while substring() returns "0". The actual refactoring path depends on the knowledge of the range of a and l.</p> </blockquote> <p>Liebe Grüße</p> <p>Felix Riesterer</p> https://forum.selfhtml.org/self/2022/nov/24/frage-zum-wiki-artikel-substr/1804086#m1804086 Rolf B 2022-11-24T20:06:16Z 2022-11-24T20:06:16Z Frage zum Wiki-Artikel „substr“ <p>So, ja, HERZLICHEN DANK , lieber Uwe </p> <p>Die <a href="https://wiki.selfhtml.org/wiki/JavaScript/Objekte/String" rel="nofollow noopener noreferrer">JavaScript/Objekte/String</a> Seite ist mal wieder zur größeren Baustelle geworden, da fehlten 16 der ECMAScript 2022 Methoden von String.prototype. Die muss ich jetzt Schritt für Schritt nachtragen.</p> <p>Witzigerweise ist String.prototype.substr im Status deprecated, seit es ECMAScript gibt. Also seit ES3 in 1999. ES1 und ES2 erwähnen sie nicht einmal. Die Methode ist ein Relikt aus JavaScript 1.2 bzw. Microsoft JScript und hat es <strong>nie</strong> in den ECMAScript Sprachkern geschafft. Sie stand immer nur als „wolle mer nit, muss ävver blieve“ im Appendix B.</p> <p>Wobei ich persönlich die <code>substring</code>-Methode scheiße finde. Ich habe sie noch nie verwendet, immer nur <code>substr</code>. Jede Sprache, die ich kenne, implementiert die Teilstring-Bildung als "ab Position X in der Länge Y". Nur ECMAScript findet es spaßig, hierfür "von Position X bis <strong>vor, aber nicht inclusive</strong> Position Y" zu definieren.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - obstruxi </div> https://forum.selfhtml.org/self/2022/nov/24/frage-zum-wiki-artikel-substr/1804088#m1804088 Der Martin 2022-11-24T20:35:16Z 2022-11-24T20:35:16Z Frage zum Wiki-Artikel „substr“ <p>Hallo Rolf,</p> <blockquote> <p>Nur ECMAScript findet es spaßig, hierfür "von Position X bis <strong>vor, aber nicht inclusive</strong> Position Y" zu definieren.</p> </blockquote> <p>das entspricht aber dem üblichen Alltagsverständnis. Wenn ich Wertebereiche aufzähle wie "von 10 bis 20, von 20 bis 30, von 30 bis 40" und so fort, dann ist auch jedem klar, dass ich genaugenommen [10,20[, [20,30[, [30,40[ meine, die Intervall-Obergrenze also <strong>nicht</strong> inklusive ist. Insofern ist ECAMScript da durchaus intuitiv.</p> <p>Dass man das Indizieren vom Stringende mit negativen Indexen nicht unterstützt, ist bedauerlich, aber eine ganz andere Geschichte.</p> <p>Einen schönen Tag noch<br>  Martin</p> <div class="signature">-- <br> Wer kennt ein schönes Autofahrer-Märchen? - <em>Radkäppchen und der böse Golf</em> </div> https://forum.selfhtml.org/self/2022/nov/24/frage-zum-wiki-artikel-substr/1804094#m1804094 Gunnar Bittersmann selfhtml@bittersmann.de https://bittersmann.de 2022-11-25T04:50:37Z 2022-11-25T04:50:37Z Frage zum Wiki-Artikel „substr“ <p>@@Der Martin</p> <blockquote> <p>das entspricht aber dem üblichen Alltagsverständnis. Wenn ich Wertebereiche aufzähle wie "von 10 bis 20, von 20 bis 30, von 30 bis 40" und so fort, dann ist auch jedem klar, dass ich genaugenommen [10,20[, [20,30[, [30,40[ meine, die Intervall-Obergrenze also <strong>nicht</strong> inklusive ist.</p> </blockquote> <p>Ich bin nicht jeder.</p> <p>„Von <em>a</em> bis <em>z</em>“ gibt ein <em>beiderseits</em> geschlossenes Intervall [<em>a</em>, <em>z</em>] an. Die Intervall-Obergrenze ist also <em>inklusive</em>.</p> <p>„Zwischen <em>a</em> und <em>z</em>“ gibt ein beiderseits offenes Intervall ]<em>a</em>, <em>z</em>[ an.</p> <p>Das haben wir so in der allgemenbildenden polytechnischen Oberschule gelernt.</p> <p lang="uk"> Живіть довго і процвітайте</p> <div class="signature">-- <br> <em>„Im Vergleich mit Elon Musk bei Twitter ist ein Elefant im Porzellanladen eine Ballerina.“</em><br> — @Grantscheam auf Twitter </div> https://forum.selfhtml.org/self/2022/nov/24/frage-zum-wiki-artikel-substr/1804103#m1804103 Rolf B 2022-11-25T09:09:32Z 2022-11-25T09:09:32Z Frage zum Wiki-Artikel „substr“ <p>Hallo Martin,</p> <blockquote> <p>Ich bin nicht jeder. -- Gunnar Bittersmann</p> </blockquote> <p>Ich auch nicht. "Verteile diese Zettel in der Hauptstraße 1 bis 99", dann schmeiße ich bei 99 was rein.</p> <p>Andererseits - "Der Workshop dauert von 8 bis 12 Uhr", dann geht er mit etwas Glück um 8 los - ist aber oft genug <em>cum tempore</em>, weil die Teilnehmer noch am Kaffeeautomaten kleben. Und wenn er um 11:55 noch läuft, kriegt der Moderator Ärger, weil von 12 bis 13 Uhr Mittagspause ist und man ja noch zur Kantine gehen muss.</p> <p>D.h. der Zeitplan hat hier eine Mehrdeutigkeit - was ist um EXAKT 12 Uhr, Workshop oder Coffeeshop? Das löst sich durch</p> <pre><code class="block">[ 8,12[ - Workshop [12,13[ - Mittagspause [13,16[ - Workshop [17, ?[ - Ausklang </code></pre> <p>natürlich auf, ist aber im praktischen Leben ohne Bedeutung, weil… siehe oben.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - obstruxi </div>