Метод isAlphanumeric в Validator.js предназначен для проверки строки на соответствие алфавитно-цифровому формату, то есть содержит ли она только буквы и цифры без пробелов, знаков препинания и специальных символов. Данная проверка часто используется при валидации логинов, идентификаторов, кодов подтверждения и других строковых значений, где допустимы только символы латиницы (или выбранной локали) и цифры.
В различных версиях библиотеки сигнатура может незначительно отличаться, однако общий принцип остаётся одинаковым:
isAlphanumeric(str [, locale])
или в более новых версиях:
isAlphanumeric(str, locale, options)
Метод анализирует каждый символ строки и проверяет, относится ли он к допустимым категориям:
Любой символ, выходящий за рамки допустимого набора, приводит к
возврату false.
Примеры недопустимых символов:
" "-_.,!?:;@#$%import validator from 'validator';
validator.isAlphanumeric('abc123'); // true
validator.isAlphanumeric('abc 123'); // false
validator.isAlphanumeric('abc-123'); // false
В первом случае строка содержит только буквы и цифры, поэтому результат положительный. Во втором и третьем случаях присутствуют недопустимые символы.
Одним из ключевых аспектов метода является поддержка локалей. Это позволяет учитывать национальные алфавиты и расширенные наборы символов.
validator.isAlphanumeric('привет123', 'ru-RU'); // true (в зависимости от версии и настроек)
validator.isAlphanumeric('hello123', 'en-US'); // true
При указании локали поведение метода может меняться, расширяя допустимый набор символов.
const username = 'user2024';
if (validator.isAlphanumeric(username)) {
console.log('Логин корректен');
} else {
console.log('Логин содержит недопустимые символы');
}
Логины часто ограничиваются алфавитно-цифровым набором для упрощения обработки и повышения безопасности.
const productId = 'A1B2C3';
if (!validator.isAlphanumeric(productId)) {
throw new Error('Некорректный ID продукта');
}
Идентификаторы в базах данных или внешних системах часто требуют строгого формата без специальных символов.
validator.isAlphanumeric('abc 123'); // false
Пробел считается недопустимым символом, даже если визуально строка выглядит корректной.
validator.isAlphanumeric('user_name'); // false
Символ подчёркивания не входит в алфавитно-цифровой набор.
Метод не нормализует строку автоматически. При работе с национальными алфавитами необходимо явно учитывать локаль.
falsevalidator.isAlphanumeric('12345'); // true
При использовании метода важно учитывать, что он:
user_123 или
user-123На практике isAlphanumeric часто используется вместе с другими проверками:
validator.isLength(username, { min: 3, max: 20 }) &&
validator.isAlphanumeric(username);
Такой подход позволяет одновременно контролировать длину строки и её состав.
validator.isAlphanumeric(''); // false
Пустая строка не считается допустимой, так как не содержит ни одного валидного символа.
При обработке пользовательских данных метод часто применяется на этапе клиентской или серверной валидации:
function validateInput(value) {
return validator.isAlphanumeric(value);
}
Это позволяет отсекать некорректные значения до дальнейшей обработки или записи в базу данных.
В разных версиях Validator.js возможны изменения:
Поэтому при разработке важно учитывать версию зависимости и сверяться с документацией конкретного релиза.