我想确保日期是以下格式之一:
DD.MM.YYYY
DD-MM-YYYY
DD/MM/YYYY
我的正则表达式看起来像这样:
"^[0-9]{2}['/''-''.'][0-9]{2}['/''-''.'][1-9][0-9]${3}"
我认为上面的代码说:
0-9
(两次这样做)开始'/''-''.'
0-9
两次。'/''-''.'
(再次)但它返回false
例如16-10-1990
我对正则表达式很陌生,所以对此有任何帮助都会非常感激!
答案 0 :(得分:3)
这是正确的表达方式。我从字符类中删除了单引号,转义了短划线并移动了" $"最后。
^[0-9]{2}[/\-.][0-9]{2}[/\-.][1-9][0-9]{3}$
要确保在两个空格中将相同的字符用作分隔符,您可以执行三个OR-ed表达式:
^([0-9]{2}\.[0-9]{2}\.[1-9][0-9]{3}|[0-9]{2}-[0-9]{2}-[1-9][0-9]{3}|[0-9]{2}/[0-9]{2}/[1-9][0-9]{3})$
...或者在' /',' - '上进行字符串替换。和'。'在对表达式进行测试之前,它们是一致的(例如将它们全部转换为破折号)。
答案 1 :(得分:2)
这应该有效
^[0-9]{2}[-./][0-9]{2}[-./]1[0-9]{3}$
^字符串的开头
2位数
- 要么 。或/
2位数
- 要么 。或/
1
3位数
$ end of string