15.3.1 問題
你如何去驗證一些南美洲國家的郵政編號呢?
15.3.2 解決辦法
對于不同的國家, 我們可以創建一系列不同的正則表達式使用群組。比如說, 我們可以創建一個自定義的Validator 類用以傳遞一個國家值。然后, 根據這個值, 呼叫相對應的RegExp 里的doValidation 方法。如果這個值跟RegExp 相配的話, 或者該國家本來就沒有郵政編號的話, 就會返回true。否則, 就會返回false。
15.3.3 討論
在自定義的validator 里使用正則表達式, 可以讓你很方便地創建各種多功能的驗證方法。如果沒有它的幫助, validator 就只能為單一的字符串進行驗證。同時, 通過使用多個的正則表達式, 你可很輕易地創建一個能驗證復數字符串的類。
在以下的代碼里, 有著一個包含著不同國家的郵政編號哈希表(hash table)。當使用者選擇了所需的國家并把這個值傳遞給validator 后, 它就會把相對應的正則表達式就會從這個哈希表(hash table)中選出。