0

作業中の HTML ファイルからの入力を JavaScript と Regex に認識させようとして問題が発生しています。

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))

この正規表現は、2 つの大文字の後に 2 つの数字が続くかどうかをテストします。次に、 を使用し!て結果を反転するので、一致しないものを報告できます。(最初と最後にアンカーも追加しましたが、以前の長さのチェックでは、おそらく技術的に不要です。)

于 2012-12-06T07:20:25.233 に答える