Анализ строки в переполнении стека

Для проекта у меня есть вход, который состоит из цифр и букв, в определенном порядке, отправленных с другой веб-страницы. Например. 7 цифр для идентификатора, номер, за которым следуют 2 буквы для групп, и 1, 2 или 3 цифры для номера комнаты.
Чтобы разделить их, я думаю, что мне нужно перебрать всю строку, посмотреть для каждого символа, является ли это число или буква, а затем использовать множество функций if / then, чтобы получить правильный тип.
Есть ли лучший способ сделать это, или это хороший способ сделать это.

0

Решение

Использование регулярного выражения должно быть лучшим решением, так как оно сообщит вам, соответствует ли идентификатор требуемому синтаксису, а также получит несколько частей этого идентификатора в массиве.

Для примера, который вы дали:

$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;
}
}
1

Другие решения

Других решений пока нет …