日期的正则表达式无效正则表达式

时间:2020-04-27 13:31:20

标签: javascript java html regex

我的日期格式为yyyy-MM-dd

并生成以下内容

 /^[0-9][0-9][0-9][0-9]\-[0-9][0-9]\-[0-9][0-9]$

这是使用以下代码在Java中生成的,其中我用正则表达式替换了格式

String format = getDisplayDateFormat( formatType );

        format = format.replaceAll("\\-","\\\\-");
        format = format.replaceAll("y","[0-9]");
        format = format.replaceAll("M","[0-9]");
        format = format.replaceAll("d","[0-9]");

        return "^" + format + "$";

如果我通过正则表达式验证器运行它很好,但是chrome出现以下错误

Pattern attribute value ^[0-9][0-9][0-9][0-9]\-[0-9][0-9]\-[0-9][0-9]$ is not a valid regular expression: Uncaught SyntaxError: Invalid regular expression: /^[0-9][0-9][0-9][0-9]\-[0-9][0-9]\-[0-9][0-9]$/: Invalid escape

编辑以包含html

<input type="text" value="2020-04-21" placeholder="yyyy-mm-dd" pattern="^[0-9][0-9][0-9][0-9]\-[0-9][0-9]\-[0-9][0-9]$" data-minimum-value="2020-08-10" data-maximum-value="2020-08-13"id="F112407" maxlength="10" data-date-format="YYYY-MM-DD" >

1 个答案:

答案 0 :(得分:0)

另请参阅:Pattern attribute value is not a valid regular expression

有效模式为:^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$

编辑:但是,还有更多简便的方法可以验证日期。考虑使用日期验证功能,例如:How to validate date with format "mm/dd/yyyy" in JavaScript? 或使用日期选择器来完全限制输入。