При использовании contenteditable и replace( ) с вводом данных происходит что-то странное?

Нужна имитация работы <input> блока, для того, чтобы заменять ( выделять, подчеркивать, менять фон текста ) "налету", т.е. когда я печатаю что-либо в этом блоке! Но по неведомой мне причине, в блоке <div> с атрибутом contenteditableпочему-то происходит перестановка курсора при вводе текста в поле в самое начало этого поля, именно при использовании replace()

let t = document.querySelector('.t');

t.addEventListener('keyup', (e)=>{
    e.target.innerHTML = e.target.textContent.replace(
            /is/gim,
        (p)=>{
            return `<span style='color: red;'>${p}</span>`;
        }
    );
});
.t{
  width: 200px;
  height: 30px;
  border: 1px solid;
}
<div class="t" contenteditable></div>

Это баг? Или это поведение, которое кажется не логичным только мне? В любом случае, думаю моя цель вам ясна, поэтому если есть решение, буду рад его услышать, мне нужно чтобы некоторые замэтченные слова ( ну или просто регулярки ) выделялись нужным мне цветом в тексте!


Ответы (0 шт):