#javascript #forms #validation #frontend
#javascript #формы #проверка #интерфейс
Вопрос:
Мне нужно проверить, действителен ли промо-код, когда пользователь добавляет его в форму. 1. должно быть 9 символов 2. При умножении первого числа на 9, второго на 8, третьего на 7, и так полученное число должно быть кратно 11 3. Одна цифра может отображаться не более двух раз рядом друг с другом
это то, что у меня есть на данный момент.
let number = ['613884922'];
let sum = 0
strNumber = number.toString();
if (strNumber.length != 9) {
return false;
}
for (var i = 0; length = strNumber.length; i < 9, i = 1) {
var n = strNumber.charAt(i);
sum = n * (length - i);
}
if (sum % 11 != 0) {
return false;
}
Я не уверен, правильно ли я поступаю.
Мне также нужно добавить это в форму, чтобы пользователь мог добавить код и посмотреть, выиграет ли он / она
Я не уверен, как я могу добавить код в форму. Это то, что у меня есть на данный момент.
</head>
<body>
<div class = user>
<h1> Hello! </h1>
<h1> check if you are lucky!</h1>
</div>
<form>
<input name="name" placeholder="What is your name?" class="name" required />
<input name="emailaddress" placeholder="What is your email?" class="email" type="email" required />
<input name="code" placeholder="Add you code here and good luck!" class="code" type="code" required></input>
<input name="submit" class="btn" type="submit" value="Send" />
</form>
<script>
let number = [];
let sum = 0
strNumber = number.toString();
if (strNumber.length != 9) {
return false;
}
for (var i = 0; length = strNumber.length; i < 9, i = 1) {
var n = strNumber.charAt(i);
sum = n * (length - i);
}
if (sum % 11 != 0) {
return false;
}
</script>
</body>
</html>
Большое спасибо
Комментарии:
1. что вам нравится делать, если вы ввели неправильный номер или что делать с правильным номером?
2. конечно, Нина!!! неправильный номер — на этот раз не номер Райта — Поздравляю
3. чтобы добавить код проверки в форму, нужно ли мне «назвать» форму? <имя формы =»промокод»>, а затем имя переменной = document.forms[«промокод»][«код»]
Ответ №1:
Функция check
- проверяет длину строки,
- проверка строки действительно содержит более трех одинаковых цифр,
- получите сумму, разделив строку и добавив умножение каждой цифры,
- и вернуть результат беспокойного деления на
11
.
function check(string) {
if (string.length !== 9) return 'wrong length';
if (/(d)1{2}/.test(string)) return 'too much of the same';
var sum = Array.from(number).reduce((s, v, i) => s (9 - i) * v, 0);
return !(sum % 11);
}
var number = '613884922',
sum = Array.from(number).reduce((s, v, i) => s (9 - i) * v, 0);
console.log(check('613884922'));
console.log(check('613384922'));
console.log(check('2'));
console.log(check('2123456789'));
console.log(check('618884922'));