Spec-Zone.ru › Valibot

maxCodePoints

Создаёт действие проверки максимального количества кодовых точек.

const Action = v.maxCodePoints<TInput, TRequirement, TMessage>(
  requirement,
  message
);

Обобщённые типы

  • TInput extends string
  • TRequirement extends number
  • TMessage extends ErrorMessage<MaxCodePointsIssue<TInput, TRequirement>> | undefined

Параметры

  • requirement TRequirement
  • message TMessage

Объяснение

С помощью maxCodePoints можно проверить максимальное количество кодовых точек Unicode в строке. Кодовые точки — это не то же самое, что 16-битные кодовые единицы UTF-16 или символы, воспринимаемые пользователем (графемы): 😀 состоит из 2 кодовых единиц UTF-16, 1 кодовой точки и 1 графемы, а 👨🏽‍👩🏽 состоит из 5 кодовых точек, но представляет собой 1 графему. Если количество кодовых точек превышает requirement, можно использовать message, чтобы настроить сообщение об ошибке.

Подсказка: это действие подходит для установки ограничений VARCHAR в PostgreSQL и в MySQL с набором символов utf8mb4. Стандарт NIST SP 800-63B также требует измерять длину пароля в кодовых точках Unicode.

Возвращаемое значение

  • Action MaxCodePointsAction<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.

Схемы

any, custom, string

Методы

pipe

Действия

maxGraphemes, maxLength

Утилиты

isOfKind, isOfType

© Fabian Hiller
Licensed under the MIT License.
https://valibot.dev/api/maxCodePoints/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API