用于检查数据格式的Javascript无法正常工作
Javascript to check data format is nor working properly
我正在尝试编写一个验证,以使用javascript检查日期格式。但我仍然收到错误消息,即使我输入了正确的日期格式,日期格式也无效我不知道我的正则表达式是否正确我在网络上找到了它
感谢您的帮助
function CheckDateFormat()
{
var StartDateform= document.getElementById('tblTarget').rows[1].cells[StartDate].getElementsByTagName('input')[0].value;
var pattern;
// Regular expression used to check if date is in correct format
pattern= new RegExp("^([0-9]{2})-([0-9]{2})-([0-9]{4})$");
if(StartDateform.match(pattern))
{
var date_array;
var day;
date_array = StartDateform.value.split('-');
day = date_array[0];
// Attention! Javascript consider months in the range 0 - 11
var month;
var year;
month= date_array[1] - 1;
year= date_array[2];
// This instruction will create a date object
//source_date = new Date(year,month,day);
source_date = new Date(day,month,year);
if(year != source_date.getFullYear())
{
alert('Year is not valid!');
return false;
}
if(month != source_date.getMonth())
{
alert('Month is not valid!');
return false;
}
if(day != source_date.getDate())
{
alert('Day is not valid!');
return false;
}
}
else
{
alert('Date format is not valid!');
InvalidFlag=1;
return false;
}
return true;
}
您应该考虑使用Moment.js这样的库来处理日期解析和验证。它将比您的regex更灵活,并且可以接受各种格式。
如果您想坚持使用正则表达式,regexpal是测试JavaScriptregex的好站点。看起来您的正则表达式成功地匹配了格式为dd-mm-yyyy
的日期。你的考试日期是什么时候?因为^
和$
字符与字符串的开始和结束相匹配,所以您的日期不能有任何额外的空格。例如:
"05-07-1998"
将与正则表达式匹配。
"05-07-1998 "
与之不匹配。
编辑:
如果您试图获取格式为dd/mm/yyyy
的日期,则需要使用Moment.js
或将正则表达式更改为:^([0-9]{2})/([0-9]{2})/([0-9]{4})$
。
因为您使用/
而不是-
来分隔日期,所以这一行也需要更改:
date_array = StartDateform.value.split('/'); // must split on '/' instead of '-'
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- JS可以在Chrome中工作,但不能在Firefox中工作
- ajaxToolkit PopupControlExtender不工作.过时的
- HTML标记在脚本标记中工作
- javascript扫雷器floodfill算法不能正常工作