^(0[1-9]|[12][0-9]|3[01])[-\/](0[1-9]|1[012])[-\/](19|20)\d\d$
在firefox 33.02中,10/10/2014
有效,但10-10-2014
无效。
但是在Chrome中,10/10/2014
和10-10-2014
都可以使用。
为什么?
编辑:
我发现这不是表达无效,但可能是MVC中的某些内容
型号:
[Required(ErrorMessage = "Field is required")]
[RegularExpression(@"^(0[1-9]|[12][0-9]|3[01])[-\/](0[1-9]|1[012])[-\/](19|20)\d\d$", ErrorMessage = "Date is incorrect")]
[DataType(DataType.Date)]
public DateTime BevBday { get; set; }
CSHTML:
@Html.TextBoxFor(model => model.BevBday)
使用它,在Firefox中它将显示为
在Chrome中字段BevBday必须是日期。
它不会给出相同的错误。
答案 0 :(得分:1)
适合我(在firefox的web控制台中测试)
var re = /^(0[1-9]|[12][0-9]|3[01])[-\/](0[1-9]|1[012])[-\/](19|20)\d\d$/;
// /^(0[1-9]|[12][0-9]|3[01])[-\/](0[1-9]|1[012])[-\/](19|20)\d\d$/
re.test('10/10/2014');
// true
re.test('10-10-2014');
// true
答案 1 :(得分:0)
将其更改为此,现在可以使用。
[Required(ErrorMessage = "Field is required")]
[DataType(DataType.Date), DisplayFormat(DataFormatString = "{0:dd.MM.yy}", ApplyFormatInEditMode = true)]
public DateTime BevBday { get; set; }