Для проекта у меня есть вход, который состоит из цифр и букв, в определенном порядке, отправленных с другой веб-страницы. Например. 7 цифр для идентификатора, номер, за которым следуют 2 буквы для групп, и 1, 2 или 3 цифры для номера комнаты.
Чтобы разделить их, я думаю, что мне нужно перебрать всю строку, посмотреть для каждого символа, является ли это число или буква, а затем использовать множество функций if / then, чтобы получить правильный тип.
Есть ли лучший способ сделать это, или это хороший способ сделать это.
Использование регулярного выражения должно быть лучшим решением, так как оно сообщит вам, соответствует ли идентификатор требуемому синтаксису, а также получит несколько частей этого идентификатора в массиве.
Для примера, который вы дали:
$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;
}
}
Других решений пока нет …