From 030668e43bc8476d246a483c854407336c82f720 Mon Sep 17 00:00:00 2001 From: Kendrick Chan Date: Wed, 7 Nov 2018 22:29:08 +0800 Subject: [PATCH] Fix plate number cleaning #168 --- src/Entity/Warranty.php | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/Entity/Warranty.php b/src/Entity/Warranty.php index a7b538af..6ea1f0cb 100644 --- a/src/Entity/Warranty.php +++ b/src/Entity/Warranty.php @@ -133,9 +133,23 @@ class Warranty // remove invalid characters $clean_plate = preg_replace("/[^A-Z0-9]/", '', $clean_plate); - // check if format is correct - // AAA123 or AAA1234 - $res = preg_match("/^[A-Z]{3}[0-9]{3,4}$/", $clean_plate); + // check for 4 to 5 digit diplomatic plate + $res = preg_match("/^[0-9]{4,5}$/", $clean_plate); + if ($res) + return $clean_plate; + + // ABC-1234 or ABC-123 or ABC-12 format + $res = preg_match("/^[A-Z]{3}[0-9]{2,4}$/", $clean_plate); + if ($res) + return $clean_plate; + + // AB-123 or AB-12345 or AB-1234 format (motorcycles) + $res = preg_match("/^[A-Z]{2}[0-9]{3,5}$/", $clean_plate); + if ($res) + return $clean_plate; + + // 1234-AB format (motorcycles) + $res = preg_match("/^[0-9]{4}[A-Z]{2}$/", $clean_plate); if ($res) return $clean_plate;