Если вы посмотрите на фактический внутренний HTML, вы увидите такие вещи, как <br>
элементы или
сущности. Ваше регулярное выражение не выглядит приспособленным для их обработки.
Возможно, вы захотите использовать textContent
вместо innerHTML
, если вам нужен текст, а не HTML , Или же, если вы действительно хотите простой текст, используйте <textarea/>
вместо div с редактируемым содержимым, который предназначен для редактирования в формате расширенного текста, которое производит HTML.
Edit :
Ваше регулярное выражение тоже не совсем верно. Поскольку вы используете конструктор RegExp
с new RegExp("^(?!\s*$).+")
, \s
в строковом литерале превратится в простой s
; Вы должны использовать \\s
, если хотите, чтобы в регулярном выражении было \s
. IMO, всегда лучше использовать литерал регулярного выражения, если вы не строите его динамически, например, /^(?!\s*$).+/
, или я считаю, что это более простая альтернатива, чтобы сказать вам, является ли строка полностью пробелом: /^\s+$/
.