<?php
// make a service class or trait or package with a format enum by country could be useful. Also if you add the functionality to implement it into Laravel.
class VatService
{
function getVatId(string $hayStack, string $needle = '/\d+/', bool $validateCount = false, $count = 6): string
{
return (
preg_match($needle, $hayStack, $matches)
&&
(
$count == strlen($matches[0]))
&&
$validateCount
)
?
$matches[0]
:
throw new Exception('VaT number was not found : ' . $count . ' == ' . strlen($matches[0]) . ' ' . $matches[0]
);
}
}
$myString = '(VAT code) Địa chỉ (Address) 034372 350-352 Võ Văn Kiệt, Phường Cô Giang';
echo getVatId(hayStack: $myString, validateCount: true, count: 6);
你是對的,我正在打電話。您應該考慮對此進行一些驗證和錯誤處理。也許這個例子有助於實現這一點。
您可以使用 preg_match 來執行此操作。如果將第三個參數 ($matches) 傳遞給 preg_match,它將建立一個填充搜尋結果的數組,並且 $matches[0] 將包含與完整模式相符的第一個文字實例。
如果字串中可能沒有數字,您可以使用以下 if 語句來識別這些情況:
請參考https://www.php.net/manual/ en/function.preg-match.php