Страницы

Поиск по вопросам

среда, 10 апреля 2019 г.

проверка введённого пользователем пин-кода

Хочу чтобы функция возвращала true если пользователь ввёл 4 или 6 цифр. И false во всех остальных случаях. Ввёл буквы, больше символов и т.д.
validatePIN("1234") === true validatePIN("12345") === false validatePIN("a234") === false
Код функции:
function validatePIN (pin) { //return true or false if (pin.length == 4) { return true; } else if (pin.length == 6) { return true; }
return false;
}
Как мне грамотно организовать проверку, того что в строке нет символов, кроме цифр от 1 до 9.
Решение с помощью регулярного выражения:
^(\d{4}|\d{6})$
П.с. если кто знает покажите как сделать без RegExp


Ответ

Ну если без регулярок, то вот так:
function validatePIN(pin) { var i = pin.length; if (i != 4 && i != 6) { return false; } while (i--) { if (pin[i] < '0' || pin[i] > '9') { return false; } } return true; } console.log('should be true:'); console.log(validatePIN('1234')); console.log(validatePIN('0129')); console.log(validatePIN('123456')); console.log('should be false:'); console.log(validatePIN('12345')); console.log(validatePIN('a234')); console.log(validatePIN('123a')); console.log(validatePIN('-123')); console.log(validatePIN('1.23')); console.log(validatePIN('0x99')); console.log(validatePIN('0:29')); console.log(validatePIN('0/29'));

Комментариев нет:

Отправить комментарий