Laravel 8での携帯電話番号のバリデーション方法


  1. 正規表現を使用したバリデーション: 正規表現を使用して、携帯電話番号のパターンを検証する方法です。以下は例です。
$phoneNumber = '080-1234-5678';
if (preg_match('/^0\d{2}-\d{4}-\d{4}$/', $phoneNumber)) {
    // バリデーション成功
} else {
    // バリデーションエラー
}
  1. Laravelのバリデーションルールを使用する方法: Laravelには標準で利用可能なバリデーションルールが用意されています。以下の例では、phoneルールを使用して携帯電話番号のバリデーションを行います。
$validatedData = $request->validate([
    'phone_number' => 'required|phone',
]);
  1. 国際的な携帯電話番号のバリデーション: もし、国際的な携帯電話番号のバリデーションが必要な場合は、libphonenumberパッケージを使用することができます。まず、libphonenumberパッケージをインストールします。
composer require giggsey/libphonenumber-for-php

以下はlibphonenumberパッケージを使用した携帯電話番号のバリデーションの例です。

use libphonenumber\PhoneNumberUtil;
use libphonenumber\PhoneNumberFormat;
use libphonenumber\NumberParseException;
$phoneNumber = '+818012345678';
$phoneNumberUtil = PhoneNumberUtil::getInstance();
try {
    $parsedNumber = $phoneNumberUtil->parse($phoneNumber, null);
    if ($phoneNumberUtil->isValidNumber($parsedNumber)) {
        $formattedNumber = $phoneNumberUtil->format($parsedNumber, PhoneNumberFormat::INTERNATIONAL);
        // バリデーション成功
    } else {
        // バリデーションエラー
    }
} catch (NumberParseException $e) {
    // パースエラー
}

以上がLaravel 8における携帯電話番号のバリデーション方法とコード例です。必要に応じて、これらの方法を適宜組み合わせて使用してください。