用Matlab验证给定格式的日期



我正在设计一个GUI。我有一个编辑文本框,在其中输入日期字符串,格式如下'31 Mar 2011 10:00:00.000'。我需要代码来验证它,并在无效输入的情况下编写错误消息。谢谢您的关注。欢呼。

你能用正则表达式处理这个吗?如果你需要你的用户输入一个特定格式的日期,我可以看到用matlab函数regexp解析这个字符串,看看它是否匹配给定的格式。在上面的例子中,比如

s='31 Mar 2011 10:00:00.000'
regexp(s,'d{1,2} w{3} d{4} d{2}:d{2}:d{2}.?d*')

可以用来检查日期是否与格式匹配。

datenum包裹在try - catch中,如下所示:

try
    a=datenum('lkdsldkjhfsg');
catch
    disp('Bad date')
end

您可能想看看datestrdatenum、预定义的日期格式和字段的符号标识符。然后,您可以通过检查是否满足某些标准来围绕每个标识符构建验证。如果输入无效,可以使用error向用户抛出错误。

谢谢大家的回答。这是一个可能的回调函数代码,对应于它可以使用的编辑文本框:

user_entry = get(hObject,'string');
control = regexp(user_entry,'d{1,2} w{3} d{4} d{2}:d{2}:d{2}.?d*')
if(numel(control)==0)
    errordlg('Invalid Input Format','Error Message','modal')
    uicontrol(hObject)
end

相关内容

  • 没有找到相关文章

最新更新