我有一个将 Excel 表上传到数据库的功能。其中一项验证是检查 Excel 表中给出的日期格式为 dd/MM/yyyy
为此,我进行如下正则表达式检查
if (!checkRegex(member["DOB"].ToString().Trim()))
{
ModelState.AddModelError("DOBFORMAT", "Date of Birth is not in dd/MM/YYYY for record " + count + ". Please check");
System.IO.File.Delete(pathToExcelFile);
return View();
}
和正则表达式检查功能是
public bool checkRegex(string inputstring)
{
DateTime date;
string format;
Regex regex = new Regex(@"^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]|(?:Jan|Mar|May|Jul|Aug|Oct|Dec)))\1|(?:(?:29|30)(\/|-|\.)
(?:0?[1,3-9]|1[0-2]|(?:Jan|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))\2))
(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)(?:0?2|(?:Feb))\3
(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|
(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9]|(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep))|(?:1[0-2]|(?:Oct|Nov|Dec)))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$");
try
{
date = Convert.ToDateTime(inputstring);
format = "dd/MM/yyyy";
string check = date.ToString(format);
if (regex.IsMatch(check))
return true;
else
return false;
}
catch
{
return false;
}
}
当我上传一个带有"27/08/1983"
from的 Excel 表时,server
它给出了错误,即日期格式对于记录是错误的。
我尝试了同样的localhost
操作并完成了调试。它通过正则表达式并成功上传。
日期格式server
为localhost
"dd/MM/yyyy"
其他 excel 表也正在成功上传。
请对此问题有所了解