在项目中, 我们经常会遇到时间问题, 有时候是使用时间插件, 让用户选择, 但有时应客户要求, 能够自行输入时间, 那么, 我们如何来确定用户输入的时间格式是否正确, 输入的时间是否合法呢?
这个时候需要用到正则表达式, 接下来, 简单讲解我的验证实例, 以验证时间格式 2017-01-01 格式为例:
1. 首先, 我们需要获得用户输入的内容;
2. 其次, 我们需要验证用户输入的内容是否为 2017-01-01 格式;
3. 然后, 验证格式正确后, 需要验证输入的时间是否合法;
4. 如果用户输入的是正确的, 合法的时间格式, 那么返回输入框中的内容, 否则提示用户重新输入
以下给出具体验证过程, 可供参考:
1. 获取用户输入的时间:
var bagin = $('.input_one').val();
2. 验证时间格式是否正确:(验证通过返回时间戳格式, 例如:(2017-01-01,2017,-,01,-,01), 否则返回 null)
- var bagin_r = bagin.match(/^(\d{4})(-)(\d{2})(-)(\d{2})$/);
- if (bagin_r == null) {
- alert("请输入正确的开始时间格式, 如: 2017-01-01");
- return false;
- }
3. 验证时间是否合法:(注意: 此段必须放置在验证时间格式完成之后)
- var b_d = new Date(bagin_r[1], bagin_r[3] - 1, bagin_r[5]);
- var b_num = (b_d.getFullYear() == bagin_r[1] && (b_d.getMonth() + 1) == bagin_r[3] && b_d.getDate() == bagin_r[5]);
- if (b_num == 0) {
- alert("开始时间不合法, 请输入正确的开始时间");
- return false;
- }
来源: http://www.jb51.net/article/134748.htm