首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法在Javascript中验证日期

无法在Javascript中验证日期
EN

Stack Overflow用户
提问于 2014-06-18 02:01:10
回答 1查看 99关注 0票数 1

我需要确认我的约会对象。但是当我在01132014中输入时,它没有显示任何错误消息,并且它打印出01,2015年1月,也就是当我输入06035555时,它没有打印出任何错误,并继续显示06 / 5555

但是如果我输入像33333333这样奇怪的日期,它就会打印出“您的输入根本没有逻辑”。

此外,我不希望错误消息弹出一个警告框。我希望在文本框本身上显示错误消息。我该怎么做呢?

我可以知道应该添加什么来验证吗?我试着去看其他的答案,但还是没有用。

Javascript:

代码语言:javascript
运行
复制
    function parseDate(s) {

    if (isNaN(Date.parse(s))) {
            alert("Your input has no logic at all");
            return;
        }

        var reg = /^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/g;

        var dateParts = s.split("/");

        var date = new Date(dateParts[2], (dateParts[1] - 1), dateParts[0]);

        var dateStrParts = date.toString().split(" ");

        return (date.getDate() + ", " + dateStrParts[1] + " " + dateStrParts[3]);
    }
</script>

日历标签:

代码语言:javascript
运行
复制
    <p:calendar 
    value="#{pc_Rpt2202.asat_date}"
    id="rp2202_input_as_at" 
    styleClass="calendar" 
    maxlength="10"
    pattern="dd MMM yyyy"
    onchange="$(this).val(parseDate($(this).val()))"
    onfocus="$(this).mask('99/99/9999');"
>
    <p:watermark for="rp2202_input_as_at" value="dd/MMM/yyyy" />
    <f:convertDateTime pattern="dd MMM yyyy" />
</p:calendar>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-18 04:05:49

好吧,两件事。首先,Date.parse倾向于特定于实现,所以我不会使用它。其次,regex基本上是一个模式验证器,而不是一个内容验证器。最好的方法是保持正则表达式的简单性,比如/^(0?[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[0-2])\/(19|20)[0-9][0-9]$/,然后拆分并检查片段的内容,如下所示:

代码语言:javascript
运行
复制
var re = /^(0?[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[0-2])\/(19|20)[0-9][0-9]$/;
if (!re.test(s)) {
        $('#rp2202_input_as_at').val("Your input has no logic at all");
        return;
    }
 var dateParts...etc.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24275990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档