2012-08-24 19 views
0

我的代碼是這樣的:如何修剪所有的空格,如果有任何在我的字符串結束?

case 'phone_number': 
         $pattern = "/^\s*\+?\s*([0-9]+\s*)+\s*(\((\+?[0-9]+\s*)+\))?\s*[0-9-\s]*[0-9]\s*(x\s*[\d]{1,})?$/"; 
         //$trimmed = str_replace(' ', '', $pattern); 
         $pattern = preg_replace(' ', '', $pattern); 

       break; 

       default: 
         return false; 
       break; 

     } 
     return preg_match($pattern, $data) ? true : false; 

它是一個電話號碼的驗證,我想如果有任何空格要刪除的號碼後,這樣就不會跟我的錯誤的條件不能trim(strlen($_POST['phone_number'])) > 30

我該怎麼做?非常感謝!

+2

什麼問題? 'trim()'完成這項工作,但是你必須在字符串上使用它,而不是在它的長度上使用它。 – moonwave99

+2

你需要在'strlen'之前'trim'。 –

+0

輸出'$ _POST'值,你會發現錯誤。 – moonwave99

回答

3

要調用:

trim(strlen($_POST['phone_number'])) > 30 

在哪家翻譯:

strlen($_POST['number'])) --> will be 10, or 12 

trim(the_number_above) --> nothing to trim 

,這個數字將低於30當然 - 調用函數按正確的順序:

strlen(
    trim($_POST['phone_numer']) 
) > 30 

無論如何,我會在腳本的一開始修剪所有的輸入內容,而不是每一次檢查。

+0

+1並批准!謝謝! – Abude