Проверка Javascript пользовательского ввода - PullRequest
0 голосов
/ 25 апреля 2018

Попытка создать код, в котором пользователь должен ввести строку из определенного списка, чтобы продолжить.Я использую константу для перечисления действительных строк, однако мне нужно, чтобы два значения были видны как равные.

const VALID_STATE = ('queensland%qld%new south wales%nsw%victoria%vic%northern territory%nt%western australia%wa%south australia%sa%tasmania%tas%australian capital territory%act');

Как я могу изменить это так, чтобы я мог сделать QUEENSLAND и QLD видимыми както же значение и, следовательно, одно недопустимо, если другое уже введено.Ниже приведен код, который я использую для проверки ввода пользователя.

state = prompt('Input a state name:');
    while(VALID_STATE.indexOf(state.toLowerCase())<0){
        alert('The input state was not valid.');
        state = prompt('Re-enter the state name:');

Заранее спасибо.

1 Ответ

0 голосов
/ 25 апреля 2018

Как насчет того, если кто-то входит "nd%ql" ..?Это не правильный способ сделать эту работу.Держите их в объекте Map и сопоставьте клавиши "queensland" и "qld" с тем же именем по вашему выбору.

var stateMap = new Map([['queensland','qld'], ['qld','qld'], ['new south wales', 'nsw'], ['nsw', 'nsw'], ['victoria', 'vic'], ['vic', 'vic'], ['northern territory', 'nt'], ['nt', 'nt'], ['western australia', 'wa'], ['wa', 'wa'], ['south australia', 'sa'], ['sa', 'sa'], ['tasmania', 'tas'], ['tas', 'tas'], ['australian capital territory', 'act'], ['act', 'act']]);

var state = prompt('Enter a state.');
while (!stateMap.has(state.toLowerCase())){
  alert('The input state was not valid.');
  state = prompt('Enter a state.');
}
state = stateMap.get(state);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...