正则表达式接受空白值

时间:2019-02-26 03:26:58

标签: regex

我正在为日期格式MM / DD / YYYY创建正则表达式。

    String regex = "^(0[1-9]||1[0-2])/"
                + "([0-2][0-9]||3[0-1]||[1-9])/"
                + "([0-9][0-9][0-9][0-9]||[0-9][0-9][0-9]||[0-9][0-9]||[0-9])$";

它工作正常,但是如果我输入//或1/12 /,它将接受输入。

我该如何解决?

2 个答案:

答案 0 :(得分:0)

尝试使用^(0[1-9]|1[0-2])\/([1-2][0-9]|3[0-1]|0[1-9])\/(\d{4})$作为您的正则表达式字符串。你把一天的时间弄得一团糟。我也逃脱了/。它应该在0000到9999年之间工作。

我建议在使用正则表达式测试器(例如this one时,尝试以较小的位(例如,先用“ MM”,然后用“ DD”,再用“ YYYY”,然后用斜杠)构建表达式。 )。

答案 1 :(得分:-1)

如果您严格遵循MM / DD / YYYY

,则此方法会很好地工作
String regex = "^(0[1-9]{1}||1[0-2]{1}){1}/([0-2]{1}[0-9]{1}||3[0-1]{1}||[1-9]{2}){1}/([0-9]{4}){1}$";