jarir-ahmed/bd-phone

Bangladesh phone number toolkit: normalize, validate, format, detect operator and number type.

Maintainers

Package info

github.com/jarir2020/jarir-ahmed-bd-phone

pkg:composer/jarir-ahmed/bd-phone

Transparency log

Statistics

Installs: 6

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.1 2026-07-11 02:41 UTC

This package is auto-updated.

Last update: 2026-07-11 02:46:42 UTC


README

Bangladesh phone number toolkit — normalize, validate, format, detect operator and number type. Zero dependencies.

composer require jarir-ahmed/bd-phone

Quick Start

use JarirAhmed\BdPhone\BdPhone;

// Normalize to E.164
BdPhone::normalize('01712345678');      // +8801712345678
BdPhone::normalize('+8801712345678');   // +8801712345678
BdPhone::normalize('008801712345678');  // +8801712345678

// Validate
BdPhone::validate('01712345678');       // true
BdPhone::validate('01112345678');       // false (invalid prefix)

// Format
BdPhone::format('01712345678', 'local');       // 01712 345678
BdPhone::format('01712345678', 'local_dash');  // 01712-345678
BdPhone::format('01712345678', 'intl');        // +880 1712 345678
BdPhone::format('01712345678', 'intl_dash');   // +880-1712-345678
BdPhone::format('01712345678', 'e164');        // +8801712345678

// Detect operator
BdPhone::getOperator('01712345678');    // Grameenphone
BdPhone::getOperator('01812345678');    // Robi
BdPhone::getOperator('01912345678');    // Banglalink
BdPhone::getOperator('01512345678');    // Teletalk

// Number type
BdPhone::getNumberType('01712345678');  // mobile

// Full info
BdPhone::info('01712345678');
// [
//   'normalized'    => '+8801712345678',
//   'valid'         => true,
//   'operator'      => 'Grameenphone',
//   'type'          => 'mobile',
//   'local'         => '01712 345678',
//   'international' => '+880 1712 345678',
// ]

Supported Operators

Prefix Operator
013, 017 Grameenphone
016, 018 Robi
014, 019 Banglalink
015 Teletalk

API

normalize(string $number): string

Convert to E.164 format (+8801XXXXXXXXX). Returns empty string if unparseable.

validate(string $number): bool

Check if the number is a valid Bangladeshi phone number with a known operator prefix.

format(string $number, string $format): string

Format into one of: e164, local, local_dash, intl, intl_dash.

getOperator(string $number): ?string

Detect mobile operator. Returns null if unknown.

getNumberType(string $number): ?string

Identify type: mobile, or null if unknown.

info(string $number): array

Return all data as an associative array.

Testing

composer install
composer test

License

MIT

jarir-ahmed-bd-phone