0

我在尝试让 JavaScript 和 Regex 识别来自我正在处理的 HTML 文件的输入时遇到问题。

function validateSchoolClass(field)
{
if(field == "") 
{
    return "No class ID was entered.\n";
}
else if (field.length != 4)
{
    return "Class ID must be 4 characters.\n";
}
else if (/[^A-Z]{2}[^0-9]{2}/.test(field))
{
    return "Class Name must be two capital letters followed by two numbers.\n";
}
return "";
}

我想要发生的是输入到传递的字段中将包含 4 个字符,前 2 个是大写字母,接下来的 2 个是数字。我不知道我是否遗漏了一些东西,但从我读过的所有内容来看,这应该可以工作,但它不起作用,并且传递的任何 4 个字符输入仍然算作有效!

4

1 回答 1

1

我会改变那个else if决赛

else if (!/^[A-Z]{2}[0-9]{2}$/.test(field))

该正则表达式测试两个大写字母后跟两个数字,然后我使用!反转结果,因此您可以报告不匹配的内容。(我还在开头和结尾添加了锚点,但是根据您之前的长度检查,它们在技术上可能是多余的。)

于 2012-12-06T07:20:25.233 回答