我的日期格式为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" >
答案 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? 或使用日期选择器来完全限制输入。