Методы isAscii и isAlpha

Библиотека Validator.js предоставляет набор функций для валидации строковых значений, ориентированных на проверку форматов данных, пользовательского ввода и текстовых полей. Среди базовых проверок особое место занимают методы, связанные с анализом символьного состава строки. К таким методам относятся isAscii и isAlpha, которые решают задачи проверки допустимых символов и соответствия алфавитным ограничениям.

Обе функции работают исключительно со строками и не выполняют преобразований данных — только проверку на соответствие заданным условиям.


isAscii

Метод isAscii предназначен для проверки, состоит ли строка исключительно из ASCII-символов.

ASCII-диапазон

ASCII (American Standard Code for Information Interchange) включает символы с кодами от 0 до 127:

  • латинские буквы (A–Z, a–z)
  • цифры (0–9)
  • базовые знаки пунктуации
  • управляющие символы (например, перевод строки)

Любой символ вне этого диапазона (например, кириллица, умляуты, китайские иероглифы, эмодзи) приводит к отрицательному результату проверки.

Сигнатура

isAscii(str)

Поведение

  • true — если все символы строки находятся в ASCII-диапазоне
  • false — если хотя бы один символ выходит за пределы ASCII

Примеры использования

const validator = require('validator');

validator.isAscii('Hello123'); 
// true

validator.isAscii('Hello world!'); 
// true

validator.isAscii('Привет'); 
// false

validator.isAscii('café'); 
// false

validator.isAscii('text?'); 
// false

Особенности применения

Метод используется в случаях, когда требуется строго ограничить ввод базовым набором символов, например:

  • идентификаторы системных сущностей
  • данные для устаревших протоколов
  • поля, ограниченные ASCII-совместимыми форматами

isAlpha

Метод isAlpha проверяет, состоит ли строка исключительно из буквенных символов. В отличие от isAscii, здесь проверяется не кодировка, а принадлежность символов к алфавитам.

Базовая логика

Метод оценивает строку как последовательность букв. По умолчанию допускаются только латинские символы, однако поведение может быть расширено через локали.

Сигнатура

isAlpha(str [, locale])

Параметры

  • str — проверяемая строка
  • locale — необязательный параметр, определяющий языковой набор

Поведение без указания локали

По умолчанию допускаются только латинские буквы:

validator.isAlpha('Hello'); 
// true

validator.isAlpha('Hello123'); 
// false

validator.isAlpha('Hello world'); 
// false (из-за пробела)

validator.isAlpha('Привет'); 
// false

Поддержка локалей

Метод isAlpha может учитывать языковые особенности алфавитов.

Примеры локалей

  • en-US — английский (латиница)
  • fr-FR — французский
  • es-ES — испанский
  • ru-RU — русский (кириллица)
  • de-DE — немецкий

Примеры использования локалей

validator.isAlpha('Привет', 'ru-RU'); 
// true

validator.isAlpha('Здравствуйте', 'ru-RU'); 
// true

validator.isAlpha('Hello', 'en-US'); 
// true

validator.isAlpha('Héllo', 'en-US'); 
// false (из-за диакритики)

validator.isAlpha('Bonjour', 'fr-FR'); 
// true

Сравнение isAscii и isAlpha

Различие по назначению

  • isAscii проверяет кодировку символов
  • isAlpha проверяет принадлежность к алфавиту

Различие по охвату символов

Метод Что проверяет Поддержка кириллицы Поддержка символов с акцентами
isAscii ASCII-диапазон (0–127) нет нет
isAlpha буквы выбранного языка да (через locale) зависит от локали

Типичные сценарии использования

Проверка идентификаторов (isAscii)

Используется для ограничения ввода безопасными символами:

function validateUsername(username) {
  return validator.isAscii(username);
}

Такая проверка исключает пробелы, кириллицу и спецсимволы.


Проверка имени или фамилии (isAlpha)

Применяется при работе с персональными данными:

function validateFirstName(name) {
  return validator.isAlpha(name, 'ru-RU');
}

Позволяет учитывать национальные алфавиты.


Ограничения методов

isAscii

  • не подходит для интернациональных систем
  • не допускает расширенные символы Unicode
  • не учитывает контекст языка

isAlpha

  • требует точного указания локали для корректной работы
  • может некорректно обрабатывать сложные составные символы
  • не допускает пробелы и знаки дефиса без дополнительной обработки

Комбинирование с другими методами Validator.js

На практике isAscii и isAlpha часто используются совместно с другими проверками:

validator.isLength(str, { min: 3, max: 20 }) &&
validator.isAlpha(str, 'en-US')

или

validator.isAscii(str) && !validator.contains(str, ' ')

Такое комбинирование позволяет задавать более строгие правила валидации.


Поведение при пустых строках

Оба метода по умолчанию возвращают false для пустых строк:

validator.isAscii('');
// false

validator.isAlpha('');
// false

Влияние пробелов и спецсимволов

  • пробелы всегда приводят к false
  • дефисы, подчеркивания и апострофы не допускаются без дополнительных настроек
  • символы Unicode вне выбранного набора алфавита считаются недопустимыми

Практическое значение валидации символов

Использование isAscii и isAlpha позволяет стандартизировать вводимые данные, минимизировать ошибки при обработке строк и ограничивать формат данных на уровне бизнес-логики. Валидация на уровне символов часто является первым этапом проверки перед более сложными преобразованиями или сохранением данных в систему.