0
對於一個項目,我有一個輸入,它由數字和字母組成,按照特定順序從另一個網頁發送。例如。一個ID的7個數字,一個數字後跟2個字母的組,以及1個,2個或3個房間號碼。 爲了分離它們,我想我必須遍歷整個字符串,查看每個字符是否是數字或字母,然後使用大量的if/then函數來獲取正確的類型。 有沒有更好的方法來做到這一點,或者這是一個好辦法。在php中分析字符串
對於一個項目,我有一個輸入,它由數字和字母組成,按照特定順序從另一個網頁發送。例如。一個ID的7個數字,一個數字後跟2個字母的組,以及1個,2個或3個房間號碼。 爲了分離它們,我想我必須遍歷整個字符串,查看每個字符是否是數字或字母,然後使用大量的if/then函數來獲取正確的類型。 有沒有更好的方法來做到這一點,或者這是一個好辦法。在php中分析字符串
在這裏使用正則表達式應該是最好的解決方案,因爲它會告訴你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;
}
}
這聽起來像一個正則表達式將是很好的突破投入羣 - 嘗試使用'preg_match'。 – millinon
有大量的字符串函數。我認爲你應該先嚐試正則表達式。 –