2011-06-06 53 views
1

因此,我使用ColdFusion來驗證表單,並且由於此表單的性質,驗證可能非常簡單。除了電話領域,我已經掌握了所有的工作。輸入電話號碼必須符合的唯一標準是,在所有非數字字符被刪除後,它必須至少有10個字符長。下面是我使用的確切代碼:爲什麼這麼簡單「如果#stringLength#LT 10」比較不起作用?

<cfif len(REreplace(phoneNum, "[^0-9]", "", "all")) LT 10> 
    [THROW AN ERROR] 
</cfif> 

的問題是,拋出一個錯誤每次PHONENUM的無論長度,除非我包括REreplace一個非數字字符()來代替。我想看看發生了什麼事情,並嘗試的東西有點不同,所以我用這個實驗:

<cfset phoneLength = len(REreplace(phoneNum, "[^0-9]", "", "all"))> 
<cfdump var="#phoneLength#"> 

<cfif phoneLength LT 10> 
    [THROW AN ERROR] 
</cfif> 

在這種情況下,我得到的10以上的傾倒值,但錯誤依然被拋出,除非我將一個非數字字符放在phoneNum中。我可以擁有完全相同數量的數字字符(即轉儲的值保持不變),但添加括號或更改是否引發錯誤。有人知道這裏發生了什麼嗎?我無法相信我向StackOverflow詢問關於If/Then的問題,但我無法理解ColdFusion如何將phoneLength評估爲少於十個,當它明顯且不明顯時。

+3

我剛剛嘗試過你的兩個例子,他們工作正常/如我所料。 – Colin 2011-06-06 17:37:41

+2

我還沒有運行它,但由於科林有和它的工作...並且我沒有看到任何明顯不正確的代碼中,我不得不問...你是否可以_sure_這是錯誤被引發的地方? – charliegriefer 2011-06-06 17:52:09

+1

也適合我。你使用什麼版本的CF? – 2011-06-06 17:52:16

回答

1

您可以嘗試使用isValid()代替。

<cfif NOT isValid("telephone", phoneNum) > 

[THROW ERROR] 

</cfif> 
+0

或'' – 2013-09-22 22:03:49

相關問題