使用不带特殊字符 + 验证格式的日期输入创建一个 from
Posted
技术标签:
【中文标题】使用不带特殊字符 + 验证格式的日期输入创建一个 from【英文标题】:Create a from with a date input in format without special characters + validation 【发布时间】:2019-09-15 15:11:47 【问题描述】:我想创建一个表单,要求用户以这种格式输入日期:“ddmmyyyy”。没有斜线,没有点,没有其他特殊字符。而且我只希望这种格式的使用是有效的,否则我想生成一条错误消息。 所以 - 例如,有效的答案是:
08101974 22032019 01011987
无效的答案是:
40779999 88229933 10152000
谢谢!
【问题讨论】:
【参考方案1】:您可以使用正则表达式和 javascript .match()
函数
$("#theForm").on("submit", function(e)
e.preventDefault();
var theDate = $("input[name='date']").val().trim();
var dateMatch = theDate.match(/^(0?[1-9]|[12][0-9]|3[01])(0?[1-9]|1[012])\d4$/im);
if (dateMatch)
alert("Correct!!!")
else
alert("Invalid date dude!!!")
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="theForm">
<label>Date: </label>
<input type="text" name="date"/>
<input type="submit" />
</form>
^(0?[1-9]|[12][0-9]|3[01])
从开头匹配 0n
或 n
格式的任何一天
(0?[1-9]|1[012])
从开头匹配 0n
或 n
中的任何月份,从 0-12
格式开始
\d4
匹配字符串末尾前一年的任意四位数字
【讨论】:
等一下 - 我试过了,现在我看到像 08101974 这样的日期也发出了无效警报... 确保没有空格,我已经调整了代码以修剪空格 我很好奇将正则表达式用于任何解决方案是否是明智的,从我了解到,如果您不了解它们可能的来龙去脉,最好远离那些包含不可逆转的错误,很难找到或解决。有一些替代方案,您正在运行什么样的项目? (例如,当您使用 asp.net mvc 时,您可以坚持使用为您完成工作的数据注释) sn-p 在这里工作,但由于某种原因不在这里:link 很抱歉var theDate = $("input[name]").val().trim()
中有语法错误,它应该是var theDate = $("input[name='date']").val().trim()
。我已经修改了更改。以上是关于使用不带特殊字符 + 验证格式的日期输入创建一个 from的主要内容,如果未能解决你的问题,请参考以下文章