Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.06.2016, 12:43
Новичок на форуме
Отправить личное сообщение для Necrogeddon Посмотреть профиль Найти все сообщения от Necrogeddon
 
Регистрация: 24.06.2016
Сообщений: 4

Пароль, условием которого является количество согласных и гласных
Добрый день! Помогите, пожалуйста, с созданием текстового пароля. Нужно на одной HTML-странице вывести окно ввода пароля. Алгоритм проверки корректности пароля: в пароле количество гласных должно быть равно количеству согласных + 3. Буду очень благодарен за помощь, спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 25.06.2016, 13:37
Аспирант
Посмотреть профиль Найти все сообщения от brexit2000
 
Регистрация: 25.06.2016
Сообщений: 10

;(function(){
   var str = 'аеёиоуыэюя'
   check = function(letter){
      if(str.indexOf(letter) > -1) return "vowel"
      return "consonant"
   }
}())


checkForm = function(){
   var warn = "введите пароль в русской раскладке"
   var pass = prompt(warn)
   if(/[^а-яё]/i.test(pass)) {
      alert(warn)
      return checkForm()
   }
   pass = pass.split("")
   return (pass.filter(function(letter) {return check(letter) === "vowel"}).length - 3) === pass.filter(function(letter) {return check(letter) === "consonant"}).length
}

alert(checkForm())
Ответить с цитированием
  #3 (permalink)  
Старый 25.06.2016, 13:54
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

brexit2000,
зачем подсчитывать гласные если подсчитали согласные?
Ответить с цитированием
  #4 (permalink)  
Старый 25.06.2016, 14:03
Аспирант
Посмотреть профиль Найти все сообщения от brexit2000
 
Регистрация: 25.06.2016
Сообщений: 10

рони,
просто ради читабельности, чтобы не еб*ть мозг
Ответить с цитированием
  #5 (permalink)  
Старый 25.06.2016, 14:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

brexit2000,
мало ли кому захочется погорячее строка 18
return (2 * pass.filter(function(letter) {return check(letter) === "consonant"}).length + 3 === pass.length)
Ответить с цитированием
  #6 (permalink)  
Старый 25.06.2016, 15:54
Новичок на форуме
Отправить личное сообщение для Necrogeddon Посмотреть профиль Найти все сообщения от Necrogeddon
 
Регистрация: 24.06.2016
Сообщений: 4

Спасибо огромное, безумно благодарен вам! Весь мозг сломал, кучу всего перепробовал, сам я всего два дня назад начал Javascript изучать
Ответить с цитированием
  #7 (permalink)  
Старый 25.06.2016, 16:50
Новичок на форуме
Отправить личное сообщение для Necrogeddon Посмотреть профиль Найти все сообщения от Necrogeddon
 
Регистрация: 24.06.2016
Сообщений: 4

Подскажите, пожалуйста, как сделать переход на вторую страницу "st6.html при выполнении вашего скрипта и переход на первую страницу "st.html" при невыполнении?
Ответить с цитированием
  #8 (permalink)  
Старый 25.06.2016, 17:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Necrogeddon,
alert(checkForm())

заменить на
window.location.href = checkForm() ? "st6.html" : "st.html" ;
Ответить с цитированием
  #9 (permalink)  
Старый 25.06.2016, 17:12
Новичок на форуме
Отправить личное сообщение для Necrogeddon Посмотреть профиль Найти все сообщения от Necrogeddon
 
Регистрация: 24.06.2016
Сообщений: 4

Спасибо, вы мне очень помогли!
Ответить с цитированием
  #10 (permalink)  
Старый 25.06.2016, 17:13
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Видимо "тот же" универ.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск