Хочу чтобы функция возвращала 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'));
Комментариев нет:
Отправить комментарий