我發現filter_var爲極其用於驗證和消毒用戶輸入PHP,但我還沒有找到任何東西,甚至遠程方便的ColdFusion(更具體地說,CF8)。有沒有什麼能提供PHP的filter_var在ColdFusion中支持的那種支持?
顯然我可以使用REReplace一起破解一些東西,但這需要花費更多的時間進行編碼,並且比使用PHP中預定義的過濾器要醜得多。有沒有更有效的方法,還是我只需要咬下子彈?
我發現filter_var爲極其用於驗證和消毒用戶輸入PHP,但我還沒有找到任何東西,甚至遠程方便的ColdFusion(更具體地說,CF8)。有沒有什麼能提供PHP的filter_var在ColdFusion中支持的那種支持?
顯然我可以使用REReplace一起破解一些東西,但這需要花費更多的時間進行編碼,並且比使用PHP中預定義的過濾器要醜得多。有沒有更有效的方法,還是我只需要咬下子彈?
有三種不同的選項供您選擇。由於您試圖管理用戶輸入,因此我假設您使用的是表單。 isValid最接近模仿您的功能,允許您檢查指定的值是否匹配數據類型或正則表達式,並返回true或false,並且默認情況下包含屬性以定義範圍。但它不支持在定義正則表達式之外創建自定義「過濾器」的功能。
第二個選項是在POST處理頁面上使用cfparam標記,它允許您指定變量的存在,對數據類型進行測試或定義正則表達式,並且可選地指定默認值(如果變量不是不存在。如果嘗試處理未定義字段但未分配默認值的頁面,則ColdFusion將引發錯誤。最後,您可以使用表單自身上的cfform和cfinput字段進行驗證;它允許客戶端數據驗證存在和類型(它也支持服務器端驗證,但它的實現是馬虎),正則表達式和輸入掩碼:獲取用戶輸入的數據並使其符合特定格式(例如添加破折號到電話號碼和郵政編碼)。
謝謝!在isValid和cfparam之間,我可以找到我需要的東西。 – Dan
沒問題。很高興我能幫上忙。 –
函數返回一個字符串或'false'似乎有點垃圾。 CFML具有函數** [isValid](http://cfdocs.org/isvalid)**,它似乎在其他方面做同樣的工作(它總是返回一個布爾值)。 –
你有沒有在http://cflib.org上打探過? – ale
感謝您的鏈接,@AlEverett!我以前沒有見過,但我一定會考慮它的。我看到的一些圖書館看起來非常有用。 – Dan