2016-09-29 39 views
0

對於一個項目,我有一個輸入,它由數字和字母組成,按照特定順序從另一個網頁發送。例如。一個ID的7個數字,一個數字後跟2個字母的組,以及1個,2個或3個房間號碼。 爲了分離它們,我想我必須遍歷整個字符串,查看每個字符是否是數字或字母,然後使用大量的if/then函數來獲取正確的類型。 有沒有更好的方法來做到這一點,或者這是一個好辦法。在php中分析字符串

+1

這聽起來像一個正則表達式將是很好的突破投入羣 - 嘗試使用'preg_match'。 – millinon

+1

有大量的字符串函數。我認爲你應該先嚐試正則表達式。 –

回答

1

在這裏使用正則表達式應該是最好的解決方案,因爲它會告訴你ID是否與所需的語法匹配,以及在數組中獲取此ID的多個部分。

對於你給的例子:

$idList = [ 
    '1AB12', // OK 
    '1AB123', // OK 
    '1AB1234', // KO 
    'AB1234', //KO 
    '12AB12', //KO 
]; 

foreach ($idList as $id) { 
    $isOk = preg_match('/^([0-9])([a-zA-Z]{2})([0-9]{1,3})$/', $id, $match); 

    if ($isOk) { 
     echo 'OK : ' . $id; 
     var_dump($match); 
    } else { 
     echo 'KO : ' . $id; 
    } 
}