I'm adding HTML tags to specific pieces of text in a document using their character indexes, for example having this element:
{
"text": "Hello",
"start": 0,
"end": 5
}
and a text like this: Hello world, I'll have the following text: Hello world
var text = Hello world
var new_text = ""
for (var i = 0; i < Array.from(text).length; i++) {
char_text_array.push({ char: Array.from(text)[i] });
}
char_text_array.forEach(char => {
//computing some operation buffering the piece of text contained in the new HTML marker and adding the field "last" to last character of the element 'Hello' (o)
var match = ... //True if the character is part of an element which has to be sorrounded with an HTML tag, otherwise False
if ("last" in char && buffer != "" and match) {
new_text += `${buffer}`;
buffer = "";
}
elif ("last" not in char && match) {
buffer = += char.char;
}
else{
new_text += char.char
}
});
But if the text is already HTML, like:
var text = "Hello world!!!!"
I want to surround Hello world with a marker without removing the other tags. I'm able to find this result thanks to an algorithm which temporary avoids HTML tags:
{
"text": "Hello world",
"start": 6,
"end": 23
}
But how to put the marker before Hello and after world? The result would be:
Hello world!!!!
But it is clear that I'm broking the right order of the tags, I think it should be:
Hello world!!!!
Because I have to keep so I have to duplicate this tag to close it before and reopening before !!!!.
Does an approach for adding HTML codes to other HTML text already exist?