在Matlab中验证具有给定格式的日期

时间:2011-04-12 21:29:13

标签: validation datetime matlab

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

4 个答案:

答案 0 :(得分:4)

datenum换成try - catch,如下所示:

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

答案 1 :(得分:4)

你能用正则表达式处理这个吗?如果您要求您的用户输入具有特定格式的日期,我可以看到使用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*')

可用于查看您的日期是否与格式匹配。

答案 2 :(得分:2)

您可能需要查看datestrdatenumpredefined date formatssymbolic identifiers for the fields。然后,您可以通过检查是否满足某些标准来围绕每个标识符构建验证。如果输入无效,您可以使用error向用户抛出错误。

答案 3 :(得分:1)

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

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