如何使用ColdFusion检查日期格式。我想检查用户是否以yyyy-mm-dd
格式输入日期。当用户以dd-mm-yyyy
格式输入日期时,我想显示错误消息。有没有简单的方法来解决这个问题?
答案 0 :(得分:4)
正如我在评论中所说,您可以使用以下功能在客户端进行验证
function validateDate(){
var dt = document.forms["Form_Name"]["Date_Field"].value;
var pattern =/^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})$/;
if (dt == null || dt == "" || !pattern.test(dt))
{
alert("invalid date");
return false;
}
else{
return true
}
}
然后在cf代码中处理
<cfset desiredFormat=DateFormat(form.Date_Field,"yyyy-mm-dd")>
ps:js函数取自Javascript Date Validation ( DD/MM/YYYY) & Age Checking
答案 1 :(得分:4)
您是否需要从服务器端验证日期格式? 在这里,我给出了一个简单的RegEx检查,以检查格式并进行一些检查以验证。
<cfset regex = '[0-2][0-9][0-9][0-9]-[0-1][0-9]-[0-3][0-9]'>
<cfset myDate = '2006-12-39'>
<cfset MatchedDate = REMatchNoCase(regex, myDate)>
<cfif arrayLen(MatchedDate) AND isDate(myDate) AND MatchedDate[1] EQ myDate>
Valid date
<cfelse>
Invalid date
</cfif>
答案 2 :(得分:1)
你可以这样做:
<cfinput name="StartDate"
validate="date"
type="text"
maxlength="10"
mask="9999-99-99"
message="Start Date must be a valid date."
required="yes">
键是mask属性。但是,如果您预先填充此字段,尝试更改该值可能会令人沮丧。