使用substr进行Javascript表单验证

使用substr进行Javascript表单验证,javascript,forms,validation,Javascript,Forms,Validation,这是验证表单的javascript的一部分。这将检查它是否为空 if (form.redoarr.value == "") { alert("Has to be higher"); form.redoarr.focus(); return false; } 我想确保输入的4位数字以75以下的2位数字开始。它还必须以40以下的2位数字结尾。如何使用substr提取前两个数字并确保它们小于75,最后两个数字并确保它们小于40。我不需要任何复杂的东西,因为它是为一个单独的内部用户在一

这是验证表单的javascript的一部分。这将检查它是否为空

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

我想确保输入的4位数字以75以下的2位数字开始。它还必须以40以下的2位数字结尾。如何使用substr提取前两个数字并确保它们小于75,最后两个数字并确保它们小于40。我不需要任何复杂的东西,因为它是为一个单独的内部用户在一个私人表单。我不能只使用<7641,因为1849是不合适的(例如)。

尽管通常的警告是永远不要只使用JavaScript(而不是使用服务器端语言)验证表单,但正则表达式非常适合:

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;
}
正则表达式更简洁,因为您不需要创建任何变量。但是,下面是通过子字符串实现的方法:

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

尽管有关于永远不要只在JavaScript(而不是使用服务器端语言)中验证表单的常见警告,但正则表达式非常适合:

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;
}
正则表达式更简洁,因为您不需要创建任何变量。但是,下面是通过子字符串实现的方法:

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

我希望这个解决方案有帮助

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;
}

我希望这个解决方案有帮助

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;
}

这听起来可能更好地实现为正则表达式。这听起来可能更好地实现为正则表达式。