我正在设计一个GUI。我有一个编辑文本框,我在其中输入日期字符串,格式为'2011年3月31日10:00:00.000'。我需要代码来验证它并在输入无效的情况下编写错误消息。感谢您的关注。欢呼声。
答案 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)
您可能需要查看datestr
,datenum
,predefined date formats和symbolic 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