нахожу через регулярку
<div
contenteditable
v-html="modelValue"
@paste.prevent="pasteAsPlainText"
@input="event => $emit('update:modelValue', event.target.textContent)"
/>
Но из-за v-html если изначальный текст содержит html тэги, они вставляются как тэги, а не текст
Как избежать такое поведение?
Мне нужно чтобы он вёл себя как обычный textarea, но чтобы там подсвечивались (оборачивались в тэг) только некоторые слова из регулярок и ничего больше
не использовать v-html)
ок, допустим заменим на v-text, но тогда те слова которые я оборачиваю в тэг не будут работать
Как ты будешь отличать что должно быть тегом, а что нужно конветировать в html entity?
мб нужно держать 2 текста, 1 как обычный текст в v-model, а другой для вывода где слова будут оборачиватся в тэг
Текст ты можешь получить через el.textContent
Короткий ответ: не пытаться написать свой вариант визивига, а брать готовый. Уже проходил эту историю несколько раз. Конец с самописными решениями всегда был печальный.
я брал, но там столкнулся с багом который нельзя решить, неправильно копирует переносы + из-за этого проблемы с v-model (нельзя адекватно посчитать количество символов, тк "лишние" переносы он убирает) :( копирует как "test test" (с 1 переносом вместо 2)
Визивигов десятки, найдите тот который работант)
Обсуждают сегодня