Проверка формы Javascript с помощью substr - PullRequest
0 голосов
/ 11 декабря 2018

Это часть javascript для проверки формы.Это проверяет, является ли оно пустым.

if (form.redoarr.value == "") {
    alert("Has to be higher");
    form.redoarr.focus();
return false;
}

Я хочу убедиться, что введенное 4-значное число начинается с 2-значного числа до 75. Оно также должно заканчиваться 2-значным числом до 40Как я могу использовать substr, чтобы извлечь первые две цифры и убедиться, что они меньше 75, а последние две цифры и убедиться, что они меньше 40. Мне не нужно ничего сложного, так как это для одного домашнего пользователя на частномформа.Я не могу просто использовать <7641, так как 1849 не в порядке (например). </p>

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Надеюсь, это решение поможет

var value = form.redoarr.value;
var re = /^\d{4}$/;
var error = '';
var first_two_digits = '';
var last_two_digits = '';

if ( !re.test(value) ) {
    error = 'Value must be four numbers';
}

first_two_digits = value.substr(0, 2);
last_two_digits = value.substr(2);

if (Number(first_two_digits) >= 75 || Number(last_two_digits) >= 40) {
    error = 'Invalid number provided';
}

if (error) {
    alert(error);
    return false;
}
0 голосов
/ 11 декабря 2018

Несмотря на обычные предостережения о том, что никогда не нужно проверять форму только в JavaScript (вместо использования языка на стороне сервера), REGEX хорошо подходит для этого:

let
err,
val = form.redoarr.value
;
if (!val)
    err = 'No value entered';
else if (!/^([0-6][0-9]|7[0-4])([0-3][0-9])$/.test(val))
    err = 'Value must be four digits, with the first two under 75 and the last two under 40';

if (err) {
    form.redoarr.focus();
    alert(err);
    return false;
}

REGEX чище, чем выНе нужно создавать какие-либо переменные.Однако вот как вы это сделаете с помощью подстроки:

let
nums_1 = val.substr(0, 2),
nums_2 = val.substr(2)
;
...