2015-10-21 69 views
1

我的Windows 7上的ColdFusion 9應用程序中的以下代碼給出了上述錯誤。名稱爲available_balance的文本框的默認值爲$ 0.00。只有當用戶刪除此值,並點擊提交按鈕,出現此上述錯誤:ColdFusion錯誤 - 字符串索引超出範圍:0

<cfif (isDefined('form.available_balance') AND (#LSIsCurrency(trim(form.available_balance))# neq ""))> 
    <cfset available_balance = "#replace(replace(trim(form.available_balance),'$','','All'), ',', '')#">   
</cfif> 
+1

根據您的總體要求,你可以把表單字段是強制性的。 –

+1

提示:當你看到一個函數名稱如*** Is ** Something *時,通常意味着函數返回true/false - 不是字符串。正如您所期望的那樣,* LS ** IsCurrency ***如果輸入被認爲是有效的(特定於區域的)貨幣則返回true,否則返回false。此外,與您的問題無關,但代碼中的英鎊符號都不是必需的。 – Leigh

回答

2

LSIsCurrency不採取空字符串或字符串用空格只能作爲 輸入。返回布爾值值。

所以,你可以試試這個:

<cfif structKeyExists(form, "available_balance")> 
    <cfset form.available_balance = trim(form.available_balance)> 
    <cfif len(form.available_balance) AND LSIsCurrency(form.available_balance)> 
    <cfset form.available_balance = LSParseCurrency(form.available_balance)> 
    </cfif>  
</cfif> 
+0

感謝您解釋導致此問題的原因。 – nam

相關問題