正则表达式仅接受1900至2019年这样的年份YYYY / YYYY / YYYY

时间:2019-07-20 10:54:17

标签: html regex validation separator

我已经在表单HTML中输入了内容,并且我想控制键入的年份必须采用以下格式:
YYYY或YYYY / YYYY / YYYY / YYYY / YYYY ... ect
我的模式是:

第一次测试:

pattern="^((19)\d{2}\/|(20)[0-1][0-9]\/)+"

第二项测试:

pattern="^((19)\d{2}\/?|(20)[0-1][0-9]\/?)+"

我希望以2018/2019/1999为例,但我必须输入2018/2019/1999 /进行第一次测试
但是如果我用第二个测试: 这种形式可以接受,但我不想被接受:20182019/1999

4 个答案:

答案 0 :(得分:1)

如果要简短,请使用单词边界\b

pattern="(\b/?(19\d\d|20[01]\d))+"

注意:

  • html模式属性描述了一个完整的字符串,^$是隐式的,无需编写它们。
  • /不是特殊字符,无需转义。
  • [0-1]没有意义,因为0和1之间没有任何关系。

答案 1 :(得分:0)

第二个正则表达式应为

pattern="^((19)\d{2}\/|(20)[0-1][0-9]\/?)+"

代替

pattern="^((19)\d{2}\/?|(20)[0-1][0-9]\/)+"

正斜杠后的问号表示匹配是可选的。

答案 2 :(得分:0)

这是我想要解决的问题:

^((19)\d{2}\/|(20)[0-1][0-9]\/|(19)\d{2}$|(20)[0-1][0-9]$)+

答案 3 :(得分:0)

使用此:

pinMode(D15, OUTPUT);

说明:

pattern="^(?:19\d{2/|20[0-1][0-9])(?:\/(?:19\d{2/|20[0-1][0-9]))*"