我想创建一个表单,该表单将要求用户以以下格式输入日期:“ ddmmyyyy”。没有斜线,没有点,没有其他特殊字符。而且我只想使用这种格式才有效,否则我想生成一条错误消息。 所以-例如,有效答案将是:
08101974 22032019 01011987
无效答案将是:
40779999 88229933 10152000
谢谢!
答案 0 :(得分:2)
您可以使用正则表达式和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])\d{4}$/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
的任何月份\d{4}
与字符串末尾的一年中的任何四位数字匹配