用户输入,验证日期格式是否正确

发布于 2024-12-02 08:17:46 字数 150 浏览 0 评论 0 原文

我有一个用户输入信息的表单。我希望能够检查他们输入到我的日期文本字段中的日期是否采用正确的格式 mm/dd/yy。

如何根据 mm/dd/yy 格式检查用户输入的内容,如果不正确,则显示一条错误,告诉他们输入的日期必须采用 mm/dd/yy 格式。

谢谢

I have a form where users enter info. I want to be able to check if the date they input into my text field for date is in the correct format of mm/dd/yy.

How can I check what the user input against mm/dd/yy format, and if it is not correct, display an error telling them the date entered has to be in mm/dd/yy format.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

萌化 2024-12-09 08:17:46

最好使用日期选择器或三个

Far better to use a date picker or three <select>s to ensure your user has no choice but enter the correct date format.

世界和平 2024-12-09 08:17:46

我确信还有其他方法可以做到这一点,但是使用 explode(),通过使用“/”作为分割字符将传入数据分成[希望]三个条目的数组。

然后检查第一个值是否在 1..12 范围内,第二个值是否在 1..31 范围内,最后一个值是否在 0..99 范围内。

更复杂的检查将确保每个月不超过适当的天数(为了获得额外的积分,当且仅当年份可以被 4 整除时,第 02 个月允许 29 天(是的,这会导致所有世纪都混乱)前两位数字不能被 4 整除,但年份格式仅限于 yy))。

如果输入太短(我想说 5 个字符以允许 1/1/1),或太长(超过 8 个字符),则它是无效的。

更好的格式是不需要需要分隔符,只需确保字符串长度为 6 个字符,全部为数字,并且每对数字都在可接受的范围内。

I'm sure there are other ways to do this, but using explode(), separate the incoming data into an array of [hopefully] three entries by using '/' as the split character.

Then check to see if the first value is in the range of 1..12, the second in the range of 1..31, and the last in the range of 0..99.

More complicated checking would ensure that for each month, the appropriate number of days is not exceeded (for extra credit, allow 29 in month 02 if and only if the year is evenly divisible by 4 (yes, this messes-up on all centuries wherein the first two digits are not divisible by 4, but you've limited to yy for the year format)).

If the input is too short (I'd say 5 characters to allow for 1/1/1), or too long (more than 8 characters), it is invalid.

The better format would be to NOT require the separator, and just make sure the string is 6 characters long, all numeric, and that each pair of digits is within your acceptable range.

猫弦 2024-12-09 08:17:46
$date='12/12/2011';
$reg="#^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$#";

if (preg_match($reg, $date)) {
    echo "GOOD date.";
} else {
   echo "BAD date.";
}
$date='12/12/2011';
$reg="#^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$#";

if (preg_match($reg, $date)) {
    echo "GOOD date.";
} else {
   echo "BAD date.";
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文