Попробуйте это
html.replace(/[^< ][A-Za-z]+[^> ]/, '<div class="underline">$&</div>');
или
html.replace(/([^< ][A-Za-z]+[^> ])/, '<div class="underline">$1</div>');
Для справки, та же функция в команде sed:
echo '<br> <br> Hello world!' | sed -e 's/\([^< ][A-Za-z]\+[^> ]\)/<div class="underline">\1<\/div>/'
Для поддержки одного символа тела,
html.replace(/([^<][A-Za-z]+[^>])/, '<div class="underline">$1</div>');
Хотя, если тег html имеет некоторые атрибуты, такие как <p class="classname">
, он не будет работать. DOMParser будет необходим вместо regex или, проконсультируйтесь this topi c.