首页 > 解决方案 > 使用 substr 进行 Javascript 表单验证

问题描述

这是验证表单的 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 不行(例如)。

标签: javascriptformsvalidation

解决方案


尽管通常警告不要仅在 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)
;

推荐阅读