2014-06-10 37 views
1

我想做一些使用CFFORMS與正則表達式的日期驗證,但得到一個JavaScript語法錯誤,防止驗證工作正常。運行CF10並查看所有瀏覽器上的javascript錯誤。意外令牌錯誤與ColdFusion表格正則表達式驗證

日期格式應該是MM/DD/YY。

我試過兩種不同類型的正則表達式模式,但沒有成功。

<cfset today = DateFormat(now(), "mm/dd/yy") /> 

嘗試#1

<cfinput type="text" name="orderDate" id="orderDate" maxlength="8" size="12" validate="regex" pattern="[0-9]{2}/[0-9]{2}/[0-9]{2}" message="Please enter a Date Order Entered in MM/DD/YY format" value="#today#" /> 

錯誤消息是:未捕獲的SyntaxError:意外令牌{

嘗試#2

<cfinput type="text" name="orderDate" id="orderDate" maxlength="8" size="12" validate="regex" pattern="^(\d{2})/(\d{2})/(\d{2})$" message="Please enter a Date Order Entered in MM/DD/YY format" value="#today#" /> 

錯誤消息是:未捕獲的SyntaxError :意外的令牌非法

+0

聽起來像的ColdFusion不允許'{N}'規定的數量重複。嘗試:[0-9] [0-9]/[0-9] [0-9]/[0-9] [0-9]' – Sam

+0

@Sam這一次,我得到一個Uncaught SyntaxError:Unexpected token ,錯誤信息試圖。這裏是由客戶端上的CF生成的javascript輸出://表單元素orderDate'REGEX'驗證檢查 if(!_CF_checkregex(_CF_this ['orderDate']。value,/ [0-9] [0-9 ]/[0-9] [0-9]/[0-9] [0-9] /,false)) { _CF_onError(_CF_this,「orderDate」,_CF_this ['orderDate'] .value,「Please輸入以MM/DD/YY格式輸入的日期訂單「); _CF_error_exists = true; } – bman2013

+1

嘗試用'\ /'轉義'/',我想他們會添加自己的分隔符。 – Sam

回答

1

好像有2個錯誤:

  • 的ColdFusion在/分隔符加,引起/mm/dd/yy之間產生的誤差。
  • 的ColdFusion不支持{n}的重複,所以你必須用[0-9][0-9]

最終表達式替換[0-9]{2}

[0-9][0-9]\/[0-9][0-9]\/[0-9][0-9]