【问题标题】:How to validate the Dateformat Mask using ColdFusion?如何使用 ColdFusion 验证日期格式掩码?
【发布时间】:2014-07-18 11:29:22
【问题描述】:

如何使用 ColdFusion 检查日期格式。我想检查用户是否输入了yyyy-mm-dd 格式的日期。当用户以dd-mm-yyyy 格式输入日期时,我想显示一条错误消息。有什么简单的方法可以解决吗?

【问题讨论】:

  • 他们如何输入日期以及您如何验证(也只是服务器端或客户端)?您可能需要验证前 4 个字符是否为数字。
  • 您可以接受任何格式的日期,在客户端验证,并且可以在服务器上处理时将其转换为所需的格式。
  • 您是在问如何确保用户以所需格式输入日期,还是在问如何管理可能以多种不同格式输入的日期?
  • @FishBelowtheIce 我问的是第一个。如何确保用户输入所需格式的日期?
  • 我试图澄清你的问题。如果还不太对,请edit

标签: coldfusion date-format coldfusion-9


【解决方案1】:

您需要从服务器端验证日期格式吗? 在这里,我给出了一个简单的 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】:

正如我在评论中所说,您可以使用以下功能在客户端验证它

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

【讨论】:

  • 谢谢。这也是解决服务器端验证吗?需要做服务器端验证。
  • 在服务器上,你可以用 isDate(form.Date_Field) 检查这是否是有效的日期,然后可以用 DateFormat 函数转换成你想要的格式。
  • 小心使用 isDate()。 ColdFusion 对于它认为有效的日期非常慷慨。
【解决方案3】:

你可以这样做:

<cfinput name="StartDate" 
validate="date" 
type="text" 
maxlength="10" 
mask="9999-99-99"
message="Start Date must be a valid date." 
required="yes">

关键是掩码属性。但是,如果您预先填充此字段,则尝试更改该值可能会令人沮丧。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-03-07
  • 1970-01-01
  • 2021-05-29
  • 2016-05-11
  • 2017-04-04
  • 1970-01-01
  • 1970-01-01
  • 2021-04-18
相关资源
最近更新 更多