我最近开始学习JavaScript。我正在测试的是验证日期格式的出生日期。下一步将是检查年龄。
我的HTML代码包括如下内容:
<form name="ProcessInfo" action="#" method="POST" enctype="multipart/form-data" target="_self" onsubmit="return checkForm();">
.
.
.
.
<br>
<label for="txtDOB">Date of Birth:* </label>
<input id="txtDOB" type="text" name="txtDOB" size="12">
format: ##/##/####
<br>
.
.
.
</form>
.
.
然后我在我的.js文件中执行了以下操作
var errMessage = "";
function checkForm() {
validateName();
validateSurname();
carSelect();
validateDOB();
if (errMessage == "") {
} else {
alert(errMessage);
}
}
...
function validateDOB()
{
var dob = document.forms["ProcessInfo"]["txtDOB"].value;
var pattern = /^([0-9]{2})-([0-9]{2})-([0-9]{4})$/;
if (dob == null || dob == "" || !pattern.test(dob)) {
errMessage += "Invalid date of birth\n";
return false;
}
else {
return true
}
}
我尝试使用正则表达式来检查日期的有效性,但即使我输入正确的日期也会收到警报。另外,我该如何分离出日/月/年以计算年龄?
-
)分隔,而不是斜杠(/
)。你实际上想要哪一个?此外,你可以使用\d
作为[0-9]
的等效表示。 - Ingo Bürk/
,但当我将-
更改为/
时出现错误。我以为我在使用/^
。 - A. Mesut Konuklar99/99/9999
。如果用户想撒谎,他仍然可以输入一个有效但不正确的日期。这样的验证只应用于拼写错误的情况下提供反馈。 - Ingo Bürk\d
应该在除了JS之外的其他语言中小心使用,例如Java/C#。它也匹配非拉丁数字,如希伯来语,中文,波斯语等。 - BalusC