javascriptには、HTMLフォームから13桁のID番号を含むvarがあります。このID番号の最初の6桁は、フォーマットYYMMDDの生年月日です。Regexを使って3桁の2桁のグループを抽出します。
入力例:94092; ここで、94は年、09は月、20は日です。
は私がそのようなことを、この誕生日を確認する必要があります:31 - 日が1の間にある
- 年の間にある(包括的)1920から1の間で1997
- 月です
これらのいずれかがfalseの場合、私の関数はfalseを返す必要があります。
これは、これまでのところ、私の関数である。
function validateID(idNum, errors) {
if (!/^\d{13}$/.test(idNum.value)) {
errors.innerHTML = "ID Number must be 13 numerical digits";
return false;
}
var year = idNum.value.substring(0, 3);
var month = idNum.value.substring(3, 5);
var day = idNum.value.substring(5, 7);
if (year > 97 || year < 20) {
errors.innerHTML = "Year is outside of range (1920 - 1997)";
return false;
} else if (month > 12 || month < 1) {
errors.innerHTML = "Month is outside of range (1 - 12)";
return false;
} else if (day > 31 || day < 1) {
errors.innerHTML = "Day is outside of range (1 - 31)";
return false;
}
}
パラメータ:IDNUMは、HTMLのフォーム入力、text型です。そして、エラーはHTMLにエラーを出力するdivです。
サブストリングが明らかに私のために働いていない、誰かがRegexを使用して別の方法を提案することができます。ありがとう!
あなたは>とint型と文字列を比較したり、<ことができません - あなたはあなたの年でのparseIntを使用する必要があり、月と日が – abagshaw
値は....完全に素晴らしいのparseInt関数 –