2016-09-29 43 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; 
    } 
}