Измените свое регулярное выражение на это так, чтобы вы соответствовали всему, кроме конца открывающего тега P, оно должно быть примерно таким (или см. Этот тест регулярного выражения ):
x=x.replace(/(<p[^>]*?>([A-Za-z ]{0,50})<\/p>)/g, "<p><strong>$1</strong></p>");
Проблема в том, что вы слишком много соответствует (см. этот тест регулярных выражений ) .. Вот хороший пример HTML, который, как я предполагаю, похож на тот, с которым у вас возникла проблема.
<form><p>This is my form it has a lot of words in this paragraph because it is too cool for school. This is my form it has a lot of words in this paragraph because it is too cool for school. This is my form it has a lot of words in this paragraph because it is too cool for school. This is my form it has a lot of words in this paragraph because it is too cool for school.</p><p>Short</p></form>
Примечание: это будет иметь некоторые промахи. Если по какой-либо причине в открывающем теге P есть символ «>». Я предположил, что это не так, поскольку это довольно редко, если JavaScript не встроен.