Fast jede Sprache verfügt über eine integrierte Funktion, mit der eine Zeichenfolge an einer bestimmten Position aufgeteilt werden kann. Sobald Sie jedoch HTML-Tags in der Zeichenfolge haben, funktioniert die integrierte Funktion nicht mehr ordnungsgemäß.
Ihre Aufgabe ist es, ein Programm oder eine Funktion zu schreiben, die eine Zeichenfolge am n-ten Zeichen aufteilt, jedoch keine Zeichen von HTML-Tags zählt und ein gültiges HTML ausgibt. Das Programm muss die Formatierung beibehalten. Leerzeichen außerhalb der HTML-Tags können nach Ihren Wünschen gezählt oder nicht gezählt werden, müssen jedoch beibehalten werden. Sie können jedoch mehrere aufeinanderfolgende Leerzeichen in einem einzigen Leerzeichen austauschen.
Eingang:
- die Saite
- die zu teilende Position bei (0-basiert)
Diese können als Programm- oder Funktionsargumente verwendet oder von der Standardeingabe gelesen werden.
Ausgabe: Die geteilte Zeichenfolge, die zurückgegeben oder in die Standardausgabe geschrieben werden kann.
Die Eingabe ist eine gültige HTML-Datei und enthält keine Entitäten (z. B.
). Tags, die nach der Zeichenbegrenzung geöffnet werden, sollten in der Ausgabe weggelassen werden (siehe letztes Beispiel).
Beispiel:
Eingabe : <i>test</i>
, 3
Ausgabe:<i>tes</i>
Eingabe : <strong><i>more</i> <span style="color: red">complicated</span></strong>
, 7
Ausgabe:<strong><i>more</i> <span style="color: red">co</span></strong>
Eingabe : no html
, 2
Ausgabe:no
Eingabe : <b>no</b> <i>html root</i>
, 5
Ausgabe:<b>no</b> <i>ht</i>
Eingabe : <b>no img</b><img src="test.png" />more text
, 6
Ausgabe:<b>no img</b>
Sie können jede Sprache und die Standardbibliothek der jeweiligen Sprache verwenden. Dies ist Code Golf, kürzeste Programmgewinne. Habe Spaß!
<
und>
stattdessen verwenden<>
, also nein (<
oder>
auch nicht vorhanden sein).<i>ab</i><b>cd</b> 1
?<i>a</i>
?<i>a</i><b></b>
(Was Sinn macht, wenn man bedenkt, dassb
das auchdiv
oder sein könnteimg
.)Antworten:
Diese Antwort ist mit der neuesten Regel nicht mehr gültig.
Javascript ( ES6 )
9491Ungolfed:
quelle
Rebol - 252 Zeichen
Ungolfed mit Kommentaren:
Beispiele in der Rebol-Konsole:
quelle
Ruby ... Sehr unrubylike mit Schleifen
quelle
(IE) JS - 135
function f(t,n){b=document.body;b.innerHTML=t;r=b.createTextRange();r.moveStart("character",n);r.select();r.execCommand('cut');return b.innerHTML}
Jetzt fühle ich mich schmutzig. Aber müssen anfangen, all diese Zeichen zu entfernen ...Haftungsausschluss:
quelle