用户输入,验证日期格式是否正确
我有一个用户输入信息的表单。我希望能够检查他们输入到我的日期文本字段中的日期是否采用正确的格式 mm/dd/yy。
如何根据 mm/dd/yy 格式检查用户输入的内容,如果不正确,则显示一条错误,告诉他们输入的日期必须采用 mm/dd/yy 格式。
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
最好使用日期选择器或三个
Far better to use a date picker or three
<select>
s to ensure your user has no choice but enter the correct date format.我确信还有其他方法可以做到这一点,但是使用
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.