Метод getFormattedValue используется для получения
текущего значения поля ввода в уже отформатированном виде, с учётом всех
активных правил форматирования, заданных экземпляром Cleave.js. Он
возвращает строку, которая соответствует отображаемому пользователю
значению, а не «сырому» вводу без масок и разделителей.
Основная идея метода заключается в том, чтобы предоставить доступ к тому же представлению данных, которое формируется библиотекой при обработке пользовательского ввода. Это особенно важно в сценариях, где необходимо синхронизировать UI и внешние системы, не теряя форматирование.
Метод вызывается на экземпляре Cleave:
const formatted = cleave.getFormattedValue();
Возвращаемое значение всегда имеет тип string.
getFormattedValue возвращает значение, которое уже
прошло через все активные преобразования:
Важно понимать, что метод не выполняет дополнительной логики форматирования при вызове. Он просто возвращает текущее состояние внутреннего отформатированного значения.
Cleave.js хранит два ключевых представления данных:
rawValue — исходное значение без форматированияgetFormattedValue() — значение с применённым
форматированиемconst cleave = new Cleave(input, {
numeral: true,
numeralThousandsGroupStyle: 'thousand'
});
Пользователь вводит:
1000000
Результаты:
cleave.getFormattedValue() →
"1,000,000"cleave.getRawValue() → "1000000"Метод применяется в ситуациях, когда требуется именно отображаемое пользователю значение:
При работе с React, Vue или чистым DOM часто нужно обновлять состояние на основе визуального значения:
input.addEventListener('input', () => {
state.value = cleave.getFormattedValue();
});
Отформатированное значение удобно сохранять в аналитике:
console.log('User input:', cleave.getFormattedValue());
Если несколько компонентов используют одно и то же поле, форматированное значение может служить источником отображения:
sidebarValue.textContent = cleave.getFormattedValue();
При каждом изменении поля ввода Cleave.js пересчитывает
форматированное значение. Это означает, что
getFormattedValue() всегда отражает актуальное состояние
после последней операции:
setRawValueconst cleave = new Cleave(input, {
numeral: true,
numeralDecimalMark: '.'
});
12345.6getFormattedValue() → 12,345.6Форматирование зависит от настроек разделителей и локали.
const cleave = new Cleave(input, {
date: true,
datePattern: ['Y', 'm', 'd']
});
20260521getFormattedValue() → 2026-05-21Значение всегда возвращается в виде строки, соответствующей заданному шаблону.
const cleave = new Cleave(input, {
blocks: [4, 4, 4],
delimiter: '-'
});
123456789012getFormattedValue() → 1234-5678-9012Если значение изменяется программно:
cleave.setRawValue('999999');
после этого:
cleave.getFormattedValue();
вернёт значение уже с учётом нового состояния и активных правил форматирования.
Метод не выполняет:
Он исключительно читает текущее отформатированное значение внутри экземпляра Cleave.js.
const value = cleave.getFormattedValue(); // может содержать разделители
Для вычислений или отправки на сервер это значение часто непригодно без предварительной очистки.
cleave.getFormattedValue();
не инициирует обновление. Если состояние не изменилось, результат останется тем же.
Вместо getFormattedValue иногда используют:
input.value — может быть синхронизирован, но зависит от
реализации CleavegetRawValue() — для бизнес-логики и вычисленийgetFormattedValue занимает промежуточную позицию между
UI и данными: это именно то, что видит пользователь в поле ввода.
Если Cleave.js инициализирован без активных правил форматирования:
const cleave = new Cleave(input, {});
тогда:
getFormattedValue() возвращает фактически исходную
строку вводаПри комбинировании нескольких правил:
const cleave = new Cleave(input, {
prefix: '+7',
blocks: [1, 3, 3, 2, 2],
delimiter: ' '
});
результат getFormattedValue() будет включать:
Пример результата:
+7 999 123 45 67
Метод возвращает детерминированный результат при одинаковом состоянии экземпляра. Это означает:
getFormattedValue является частью слоя представления
(presentation layer), обеспечивая доступ к данным именно в том виде, в
котором они формируются для отображения. Он отделяет:
raw)formatted)Такое разделение позволяет использовать библиотеку как слой маскирования ввода без привязки к конкретному UI-фреймворку.