Presque chaque langue a une fonction intégrée qui peut diviser une chaîne à une position donnée. Cependant, dès que vous avez des balises html dans la chaîne, la fonction intégrée ne fonctionnera pas correctement.
Votre tâche consiste à écrire un programme ou une fonction qui divise une chaîne au nième caractère mais ne compte pas les caractères des balises html et produira un html valide. Le programme doit conserver la mise en forme. Les espaces en dehors des balises html peuvent être comptés ou non, comme vous le souhaitez, mais doivent être préservés. Vous pouvez cependant échanger plusieurs espaces consécutifs en un seul espace.
Contribution:
- la chaîne
- la position de séparation à (sur la base de 0)
Ceux-ci peuvent être considérés comme des arguments de programme ou de fonction ou peuvent être lus à partir de l'entrée standard.
Sortie: la chaîne divisée qui peut être retournée ou écrite dans la sortie standard.
L'entrée sera html valide, elle ne contiendra aucune entité (comme
). Les balises ouvertes après la limite de caractères doivent être omises de la sortie (voir le dernier exemple).
Exemple:
Entrée:, <i>test</i>
3
Sortie:<i>tes</i>
Entrée:, <strong><i>more</i> <span style="color: red">complicated</span></strong>
7
Sortie:<strong><i>more</i> <span style="color: red">co</span></strong>
Entrée:, no html
2
Sortie:no
Entrée:, <b>no</b> <i>html root</i>
5
Sortie:<b>no</b> <i>ht</i>
Entrée:, <b>no img</b><img src="test.png" />more text
6
Sortie:<b>no img</b>
Vous pouvez utiliser n'importe quelle langue et la bibliothèque standard de la langue donnée. C'est le golf de code, le programme le plus court gagne. S'amuser!
<
et>
au lieu de<>
, donc non (<
ou>
ne sera pas présent non plus).<i>ab</i><b>cd</b> 1
?<i>a</i>
?<i>a</i><b></b>
(ce qui est logique si vous considérez que celab
pourrait également êtrediv
ouimg
.)Réponses:
Cette réponse n'est plus valable avec la dernière règle.
Javascript ( ES6 )
9491Non golfé:
la source
Rebol - 252 caractères
Non golfé avec des commentaires:
Exemples dans la console Rebol:
la source
Ruby ... Très dépourvu de style avec des boucles
la source
(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}
Maintenant je me sens sale. Mais il faut commencer à supprimer tous ces caractères ...Avertissement:
la source