В ранних версиях Cleave.js инициализация форматирования осуществлялась через объект с минимальным количеством настроек. Например, для форматирования номера телефона использовался следующий синтаксис:
var cleave = new Cleave('.input-phone', {
phone: true,
phoneRegionCode: 'US'
});
В новых версиях появилась возможность более гибкого указания настроек через маски и кастомные правила. Объект конфигурации стал более расширяемым:
const cleave = new Cleave('.input-phone', {
delimiters: ['(', ') ', '-'],
blocks: [0, 3, 3, 4],
numericOnly: true
});
Ключевые изменения:
delimiters и
blocks для кастомного форматирования.numericOnly заменяет старый параметр
numeral, предоставляя более точный контроль над числовыми
значениями.Ранее для чисел использовался параметр numeral: true с
ограниченной функциональностью. В новых версиях добавлены
возможности:
numeralDecimalMark – символ для десятичной части.delimiter – разделитель тысяч.numeralThousandsGroupStyle – стиль группировки
(thousand, lakh, wan).Пример для форматирования валюты:
const cleave = new Cleave('.input-currency', {
numeral: true,
numeralThousandsGroupStyle: 'thousand',
numeralDecimalMark: '.',
prefix: '$',
tailPrefix: false
});
Изменения позволяют управлять:
prefix,
tailPrefix).В новых версиях Cleave.js поддержка телефонов стала модульной и более точной:
phoneRegionCode теперь полностью учитывает локальные
правила.cleave.setPhoneRegionCode('GB');
paste, предотвращая
некорректное форматирование.Раньше маски задавались только через blocks и
delimiter. В новых версиях появилось:
uppercase и lowercase для автоматического
преобразования.blocks и blocksRegex.Пример:
const cleave = new Cleave('.input-code', {
blocks: [4, 4, 4],
delimiters: ['-', '-'],
uppercase: true
});
API событий изменилось для большей унификации:
onValueChanged заменяет устаревший onInput
и onChange:const cleave = new Cleave('.input', {
numeral: true,
onValueChanged: function(e) {
console.log(e.target.rawValue);
}
});
Методы управления значением:
getRawValue() – возвращает значение без
форматирования.setRawValue(value) – устанавливает значение и
автоматически форматирует его.destroy() – очищает все настройки и события, возвращая
исходное поле.Новые версии Cleave.js позволяют динамически изменять конфигурацию после инициализации:
cleave.properties.numeral = false;
cleave.properties.blocks = [2, 2, 2];
cleave.setRawValue('123456');
Следует учитывать, что некоторые старые опции больше не поддерживаются:
| Старый параметр | Новая альтернатива |
|---|---|
numeralDecimalScale |
numeralDecimalMark + кастомные методы
форматирования |
onInput |
onValueChanged |
blocksRegex (частично) |
Использование кастомных масок через delimiter и
blocks |
numericOnly (старый вариант) |
Новый numericOnly с расширенными возможностями |
ref в React позволяет напрямую управлять
экземпляром и его методами.rawValue через v-model.