В Cleave.js параметр delimiter отвечает за вставку
одного фиксированного разделителя между логическими блоками вводимых
данных. Он используется в тех случаях, когда формат предполагает
единственный символ-разделитель, повторяющийся на одинаковых
позициях.
Классический пример — форматирование чисел:
const cleave = new Cleave(input, {
numeral: true,
delimiter: ','
});
В этом случае библиотека автоматически вставляет запятую как разделитель тысяч:
delimiter в числовом режимеПри использовании numeral: true параметр
delimiter становится частью механизма форматирования
чисел:
numeralThousandsGroupStyleДополнительные варианты:
new Cleave(input, {
numeral: true,
delimiter: ' '
});
Результат:
или:
new Cleave(input, {
numeral: true,
delimiter: '.'
});
delimiterdelimiters — множественные разделители и сложные маскиВ отличие от delimiter, параметр delimiters
применяется в масках, где требуется несколько разделителей или
фиксированная структура с разными символами.
Он используется вместе с blocks, формируя формат с
несколькими логическими сегментами.
const cleave = new Cleave(input, {
delimiters: ['-', '-'],
blocks: [3, 3, 4],
numericOnly: true
});
Такой код формирует структуру наподобие телефонного номера:
delimitersdelimiters — это массив символов, которые вставляются
между блоками, определёнными в blocks.
Для конфигурации:
blocks: [3, 2, 2]
delimiters: ['.', '/']
результат будет:
blocks и delimitersВажное правило:
delimiters всегда =
blocks.length - 1Пример:
blocks: [4, 4, 4, 4]
delimiters: ['-', '-', '-']
Это соответствует формату:
blocks и delimiters в сложных форматахnew Cleave(input, {
numericOnly: true,
blocks: [1, 3, 3, 2, 2],
delimiters: ['+', ' ', ' ', '-']
});
Результат:
Здесь:
new Cleave(input, {
blocks: [4, 4, 4],
delimiters: ['-', '-'],
uppercase: true
});
Пример:
new Cleave(input, {
blocks: [2, 2, 4],
delimiters: ['/', '/']
});
Результат:
delimitersCleave.js не просто вставляет символы — он пересчитывает структуру при каждом вводе символа.
Пример поведения:
Ввод:
123456
С конфигурацией:
blocks: [3, 3],
delimiters: ['-']
Результат:
123-456
При удалении:
123-45
разделитель автоматически исчезает, если блок стал неполным.
delimiter и delimitersdelimiterdelimitersblocksnew Cleave(input, {
blocks: [2, 4, 4, 2],
delimiters: ['-', ':', '-']
});
Пример результата:
new Cleave(input, {
blocks: [3, 2, 3, 2],
delimiters: ['.', '-', '/'],
uppercase: true
});
Результат:
При вставке строки Cleave.js:
blocksdelimitersblocks: [3, 3, 3],
delimiters: ['-']
Ошибка логики:
blocks: [3, 3],
delimiters: ['-', '-', '-']
Результат:
delimiter вместе с
delimitersЭти параметры не предназначены для одновременного применения в одном формате:
delimiter работает в числовом режимеdelimiters работает в блочном режимеСовмещение приводит к конфликту логики форматирования
Cleave.js позволяет динамически менять настройки:
cleave.setRawValue('1234567890');
cleave.properties.blocks = [3, 2, 2, 3];
cleave.properties.delimiters = ['.', '.', '-'];
cleave.init();
После повторной инициализации:
delimiters
на UX вводаИспользование нескольких разделителей влияет на восприятие структуры:
Однако избыточная дробность может:
numericOnlyblocks: [3, 3, 4],
delimiters: ['-', '-'],
numericOnly: true
Ограничивает ввод только цифрами, сохраняя структуру разделителей.
uppercase и
lowercaseblocks: [4, 4],
delimiters: ['-'],
uppercase: true
Применяет трансформацию регистра без влияния на разделители.
prefixprefix: 'ID',
blocks: [3, 3],
delimiters: ['-']
Результат:
delimiter — инструмент простого форматирования
чиселdelimiters — механизм построения структурных масокblocks определяет поведение всей системы
ввода