我正在设计一个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
您可能想看看datestr
、datenum
、预定义的日期格式和字段的符号标识符。然后,您可以通过检查是否满足某些标准来围绕每个标识符构建验证。如果输入无效,可以使用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