Feche as tags HTML abertas em uma sequência

Situação é uma sequência que resulta em algo como isto:

<p>This is some text and here is a <strong>bold text then the post stop here....</p>

Como a função retorna um teaser (resumo) do texto, ela pára após determinadas palavras. Onde, neste caso, a etiqueta forte não está fechada. Mas toda a cadeia está envolvida em um parágrafo.

É possível converter o resultado / saída acima para o seguinte:

<p>This is some text and here is a <strong>bold text then the post stop here....</strong></p>

Eu não sei por onde começar. O problema é que .. Encontrei uma função na Web que faz regex, mas coloca a tag de fechamento após a string. Portanto, ela não será validada porque desejo todas as tags de abrir / fechar nas tags de parágrafo. A função que encontrei faz isso que também está errado:

<p>This is some text and here is a <strong>bold text, then the post stop here....</p></strong>

Quero saber que a tag pode ser forte, itálico, qualquer coisa. É por isso que não consigo anexar a função e fechá-la manualmente na função. Algum padrão que pode fazer isso por mim?

questionAnswers(8)

yourAnswerToTheQuestion