C# Date RegularExpression在FireFox上不起作用
在firefox 33.02中,C# Date RegularExpression在FireFox上不起作用,c#,regex,asp.net-mvc,C#,Regex,Asp.net Mvc,在firefox 33.02中,10/10/2014起作用,但10-10-2014不起作用 然而,在chrome中,10/10/2014和10-10-2014都起作用 为什么? 编辑: 我发现无效的不是表达式,而是MVC中的某些东西 型号: ^(0[1-9]|[12][0-9]|3[01])[-\/](0[1-9]|1[012])[-\/](19|20)\d\d$ cshtml: [Required(ErrorMessage = "Field is required")] [RegularEx
10/10/2014
起作用,但10-10-2014
不起作用
然而,在chrome中,10/10/2014
和10-10-2014
都起作用
为什么?
编辑:
我发现无效的不是表达式,而是MVC中的某些东西
型号:
^(0[1-9]|[12][0-9]|3[01])[-\/](0[1-9]|1[012])[-\/](19|20)\d\d$
cshtml:
[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; }
使用这个,在Firefox中它将显示为
字段BevBday必须是日期
在chrome中不会出现同样的错误。适合我(在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
谢谢,我更新了问题,这对你仍然有效吗?好的……我现在看到“c#”标签了。这是某种服务器代码(asp.net?),它动态生成html/js?从最初的问题来看,这并不明显。
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
[Required(ErrorMessage = "Field is required")]
[DataType(DataType.Date), DisplayFormat(DataFormatString = "{0:dd.MM.yy}", ApplyFormatInEditMode = true)]
public DateTime BevBday { get; set; }