maxCodePoints
Создаёт действие проверки максимального количества кодовых точек.
const Action = v.maxCodePoints<TInput, TRequirement, TMessage>(
requirement,
message
);
Обобщённые типы
TInputextends stringTRequirementextends numberTMessageextends ErrorMessage<MaxCodePointsIssue<TInput, TRequirement>> | undefined
Параметры
requirementTRequirementmessageTMessage
Объяснение
С помощью maxCodePoints можно проверить максимальное количество кодовых точек Unicode в строке. Кодовые точки — это не то же самое, что 16-битные кодовые единицы UTF-16 или символы, воспринимаемые пользователем (графемы): 😀 состоит из 2 кодовых единиц UTF-16, 1 кодовой точки и 1 графемы, а 👨🏽👩🏽 состоит из 5 кодовых точек, но представляет собой 1 графему. Если количество кодовых точек превышает requirement, можно использовать message, чтобы настроить сообщение об ошибке.
Подсказка: это действие подходит для установки ограничений
VARCHARв PostgreSQL и в MySQL с набором символовutf8mb4. Стандарт NIST SP 800-63B также требует измерять длину пароля в кодовых точках Unicode.
Возвращаемое значение
ActionMaxCodePointsAction<TInput, TRequirement, TMessage>
Примеры
В следующих примерах показано, как можно использовать maxCodePoints.
Схема с максимальным количеством кодовых точек
Схема для проверки строки с максимум 8 кодовыми точками.
const MaxCodePointsSchema = v.pipe(
v.string(),
v.maxCodePoints(8, 'The string must not exceed 8 code points.')
);
Связанные API
Следующие API можно комбинировать с maxCodePoints.
Схемы
Методы
Действия
Утилиты
© Fabian Hiller
Licensed under the MIT License.
https://valibot.dev/api/maxCodePoints/