export default {
name: 'symbols',
data: () => ({}),
methods: {
wordWrap(text) {
const regex =
/[бвгджзйклмнпрстфхцчшщ]+[аеёиоуыэюя][бвгджзйклмнпрстфхцчшщ](?=[бвгджзйклмнпрстфхцчшщьъ ])[ьъй]?|[бвгджзйклмнпрстфхцчшщ]+[аеёиоуыэюя][й]?|[аеёиоуыэюя][бвгджзйклмнпрстфхцчшщ](?=[бвгджзйклмнпрстфхцчшщьъ ])[ъь]?|[аеёиоуыэюя](?=[а-я]{2})|(?<= +)[^\s]+(?= +|$)/gmi
let out = '', offset = 0, prev = 0, pass = false
let matches = text.matchAll(regex)
for (const m of matches) {
let hyphen = text[prev - 1] == ' ' ? '' : `-`
out += text.substring(offset, prev) + hyphen + '\n'
offset = prev
if (!pass) prev = m.index
pass = m[0].length < 2
}
out += text.substring(offset)
return out
},
},
}
Всем привет, нужно реализовать в тексте перенос слова по слогам если не хватает ширины контейнера. Желательно максимально грамотный перенос, функция которую я демонстрирую, принципе устраивает, но появляются (-) и лишнии пробелы в слогах. Помогите пожалуйста разобраться, ну или может другой вариант предложите, буду благодарен