在php中分析字符串

时间:2016-09-29 15:44:31

标签: php string char

对于一个项目,我有一个输入,由特定顺序的数字和字母组成,从另一个网页发送。例如。 ID为7个数字,组后面跟着2个字母的数字,以及房间号码的1,2或3个数字。 为了分离它们,我想我必须遍历整个字符串,查看每个字符是否是数字或字母,然后使用大量的if / then函数来获得正确的类型。 有没有更好的方法来做到这一点,或者这是一个很好的方法。

1 个答案:

答案 0 :(得分: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;
    }
}