如何在 actionscript 3 中检查 mm/dd/yyyy 的正确自定义输入?
Posted
技术标签:
【中文标题】如何在 actionscript 3 中检查 mm/dd/yyyy 的正确自定义输入?【英文标题】:How would I check for a proper custom input of mm/dd/yyyy in actionscript 3? 【发布时间】:2017-05-04 21:21:50 【问题描述】:我有一个带有 editable="true"
的 DataField,格式为 mm/dd/yyyy。然后假设用户输入月份mm
部分13
这是不正确的。如何验证它以及 dd
部分和 yyyy
部分并在不正确时显示一个弹出窗口?
这是单击apply
按钮时发生的情况:
var newDate:Date = dfDate.selectedDate;
var month:String = (newDate.month + 1) < 10 ? "0" + (newDate.month + 1).toString() : (newDate.month + 1).toString();
var date:String = newDate.date < 10 ? "0" + newDate.date.toString() : newDate.date.toString();
var year:Number = newDate.getFullYear();
var dateString:String = month + "/" + date + "/" + year;
按钮部分:
<mx:FormItem id="itemDate">
<mx:DateField id="dfDate" yearNavigationEnabled="true" editable="true"/>
</mx:FormItem>
【问题讨论】:
您可以在 FocusOut 事件中编写逻辑。 好的会尝试,但是你知道有没有更通用的方法来做到这一点? 可能重复,看这里***.com/questions/5009106/… 谢谢大家,其实我已经知道答案了,如果我没有勾选“回答你自己的问题”复选框,你知道我该如何回答我自己的问题吗? 在 focusout 事件中,您可以检查 dfDate.selectedDate 是否为空,则日期无效。这是对其有效性的简单检查。 【参考方案1】:你可以只使用一个简单的正则表达式
var customRegExp:RegExp = new RegExp(/(0[1-9]|1[012])[\/](0[1-9]|[12][0-9]|3[01])[\/](19|20)\d\d/);
然后使用.test
函数和一些格式化的东西
var fmt:DateFormatter = new DateFormatter();
fmt.formatString = "MM/DD/YYYY";
if(!customRegExp.test(fmt.format(dfDate.selectedDate)))
Alert.show("Please input date in format MM/DD/YYYY");
enableForm(true);
为我工作得很好,我认为也可以为其他人工作!
下面是代码:
var customRegExp:RegExp = new RegExp(/(0[1-9]|1[012])[\/](0[1-9]|[12][0-9]|3[01])[\/](19|20)\d\d/);
var fmt:DateFormatter = new DateFormatter();
fmt.formatString = "MM/DD/YYYY";
if(!customRegExp.test(fmt.format(dfDate.selectedDate)))
Alert.show("Please input date in format MM/DD/YYYY");
enableForm(true);
【讨论】:
以上是关于如何在 actionscript 3 中检查 mm/dd/yyyy 的正确自定义输入?的主要内容,如果未能解决你的问题,请参考以下文章
ActionScript 3 AS3检查两个不同阵列中的所有值是否相同