Ваш slice()
не принимает все четыре цифры почтового индекса.Вместо этого используйте следующее postalCode.slice(0, 4)
.
Посмотрите на документы Mozilla относительно slice
.
В приведенном ниже фрагменте рабочего кода также обратите внимание на следующие тристроки.
var postalCodeC = Number(postalCode.slice(0, 4));
// converts the alphanumeric value from prompt to a number for better comparison.
var postalCodeL = postalCode.slice(-2).toUpperCase();
// converts the letters of the postal code to CAPS, this way Aa, AA or aa will be valid too.
var correctCity = city.toLowerCase() === 'amsterdam';
// the same here, convert city to lowercase letters and compare the input to 'amsterdam'
Рабочий пример.
var sendingCost = 15;
var city = prompt("What city do you live in?");
var postalCode = prompt("What is your postal code?");
var postalCodeC = Number(postalCode.slice(0, 4));
var postalCodeL = postalCode.slice(-2).toUpperCase();
var correctCity = city.toLowerCase() === 'amsterdam';
var withinPostalArea = postalCodeC >= 1000 && postalCodeC <= 2000 && postalCodeL >= 'AA' && postalCodeL <= 'BB';
console.log(postalCodeC);
console.log(postalCodeL);
if (correctCity && withinPostalArea) {
alert('There is no sending cost');
} else {
alert('The sending cost is €' + sendingCost);
};
ПРИМЕЧАНИЕ: Чтобы помочь вам решить эти проблемы.console.log()
вывод, чтобы проверить значение переменной и посмотреть, соответствует ли оно ожидаемому.