PHPackages                             jackocnr/intl-tel-input - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Validation &amp; Sanitization](/categories/validation)
4. /
5. jackocnr/intl-tel-input

ActiveLibrary[Validation &amp; Sanitization](/categories/validation)

jackocnr/intl-tel-input
=======================

A JavaScript library for entering and validating international telephone numbers

29.1.1(1w ago)8.2k281.9k—6.3%2.0k[3 issues](https://github.com/jackocnr/intl-tel-input/issues)2MITTypeScriptCI passing

Since Jan 11Pushed 1w ago128 watchersCompare

[ Source](https://github.com/jackocnr/intl-tel-input)[ Packagist](https://packagist.org/packages/jackocnr/intl-tel-input)[ Docs](https://github.com/jackocnr/intl-tel-input)[ GitHub Sponsors](https://github.com/jackocnr)[ RSS](/packages/jackocnr-intl-tel-input/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (10)DependenciesVersions (426)Used By (2)

International Telephone Input
=============================

[](#international-telephone-input)

[![CI](https://github.com/jackocnr/intl-tel-input/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/jackocnr/intl-tel-input/actions/workflows/ci.yml) [![version](https://camo.githubusercontent.com/bdd3ed69816118be2649d13ed56cb84ee8ea75d3225890214ac1e61cccc9575d/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f7061636b6167652d6a736f6e2f762f6a61636b6f636e722f696e746c2d74656c2d696e7075742e737667)](https://camo.githubusercontent.com/bdd3ed69816118be2649d13ed56cb84ee8ea75d3225890214ac1e61cccc9575d/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f7061636b6167652d6a736f6e2f762f6a61636b6f636e722f696e746c2d74656c2d696e7075742e737667) [![downloads](https://camo.githubusercontent.com/c37b99d5e12399c329a63026c981e302d5d05d51e0ac7c376785b80e4ad9d903/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f646d2f696e746c2d74656c2d696e7075742e737667)](https://camo.githubusercontent.com/c37b99d5e12399c329a63026c981e302d5d05d51e0ac7c376785b80e4ad9d903/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f646d2f696e746c2d74656c2d696e7075742e737667) [![NerdyData.com logo](https://camo.githubusercontent.com/a48e7ad2dea33d2b5df1d52fffb6f604243ee37b30f44a5dec1798f44395167a/68747470733a2f2f6261646765732e6e65726479646174612e636f6d2f37313964653964322d643065372d343938382d623032662d396639643532363837303736)](https://badges.nerdydata.com/719de9d2-d0e7-4988-b02f-9f9d52687076/report)

For entering, formatting, and validating international telephone numbers. Available in vanilla JavaScript, or as React, Vue, Angular, and Svelte components.

[Explore docs »](https://intl-tel-input.com/docs/integrations)

   ![intl-tel-input screenshot showing country dropdown open](https://camo.githubusercontent.com/58b40fc7ac31ef28373600956c683c3ce5112392bc0c38e8607ee6deaa83d602/68747470733a2f2f7261772e6769746875622e636f6d2f6a61636b6f636e722f696e746c2d74656c2d696e7075742f6d61737465722f73637265656e73686f74732f6974692d6769746875622d6c696768742e706e67)Sponsored by
------------

[](#sponsored-by)

[![Twilio](https://camo.githubusercontent.com/a3c35c01beeebcabe27b53d5a91dba1e34cebe5b2eac127d0783dafe30a63d68/68747470733a2f2f7261772e6769746875622e636f6d2f6a61636b6f636e722f696e746c2d74656c2d696e7075742f6d61737465722f73637265656e73686f74732f7477696c696f2e77656270)](https://camo.githubusercontent.com/a3c35c01beeebcabe27b53d5a91dba1e34cebe5b2eac127d0783dafe30a63d68/68747470733a2f2f7261772e6769746875622e636f6d2f6a61636b6f636e722f696e746c2d74656c2d696e7075742f6d61737465722f73637265656e73686f74732f7477696c696f2e77656270)

Use [Twilio's API to build phone verification, SMS 2FA, appointment reminders, marketing notifications and so much more](https://www.twilio.com/blog/international-telephone-input-twilio?utm_source=github&utm_medium=referral&utm_campaign=intl_tel_input). We can't wait to see what you build.

Resources
---------

[](#resources)

Check out the [website](https://intl-tel-input.com), where you can find [a full set of docs](https://intl-tel-input.com/docs/integrations), a [live playground](https://intl-tel-input.com/playground/) where you can try out all of the options, as well as plenty of [examples](https://intl-tel-input.com/examples/vanilla-javascript/validation) of different setups.

Features
--------

[](#features)

🔍 **Fast country picking**

- Search by country name or dial code
- Full keyboard navigation

✨ **Smart defaults**

- Optionally auto-detect the user's country
- Example placeholders per country

📞 **Formatting &amp; output**

- Formats the number as the user types
- Extract standard E.164 numbers to store

🛡️ **Validation**

- Validate numbers with specific error types
- Only allow valid digits and enforce max length

🌍 **International &amp; accessible**

- Translated into 40+ languages
- Support for RTL and alternative numerals
- Screen reader-friendly ARIA markup

🎛️ **Developer-friendly**

- Override CSS variables (e.g. dark mode)
- Extensive initialisation options
- TypeScript definitions included

Contributing
------------

[](#contributing)

See the [contributing guide](https://github.com/jackocnr/intl-tel-input/blob/master/.github/CONTRIBUTING.md) for instructions on setting up the project and making changes, and also on how to update the flag images, or how to add a new translation.

Attributions
------------

[](#attributions)

- Flag images from [flag-icons](https://github.com/lipis/flag-icons)
- Original country data from mledoze's [World countries in JSON, CSV and XML](https://github.com/mledoze/countries)
- Formatting/validation/example number code from [libphonenumber](https://github.com/googlei18n/libphonenumber)

User testing powered by [BrowserStack Open-Source Program](https://www.browserstack.com/open-source)

License
-------

[](#license)

MIT

###  Health Score

77

—

ExcellentBetter than 100% of packages

Maintenance98

Actively maintained with recent releases

Popularity70

Solid adoption and visibility

Community45

Growing community involvement

Maturity83

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 90.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~8 days

Total

424

Last Release

11d ago

Major Versions

24.8.2 → 25.0.02024-12-04

25.15.1 → v26.x-dev2026-01-22

26.9.2 → v27.x-dev2026-04-08

27.3.1 → 28.0.02026-04-26

28.1.0 → v29.x-dev2026-05-22

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/25364?v=4)[Joël Gaujard](/maintainers/defro)[@defro](https://github.com/defro)

![](https://www.gravatar.com/avatar/9a312be46cdd552dbdd59c2088b011963601614490ba9571a1eee2bf08693f5c?d=identicon)[jackocnr](/maintainers/jackocnr)

---

Top Contributors

[![jackocnr](https://avatars.githubusercontent.com/u/1186883?v=4)](https://github.com/jackocnr "jackocnr (3894 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (110 commits)")[![caseyjhol](https://avatars.githubusercontent.com/u/2874325?v=4)](https://github.com/caseyjhol "caseyjhol (48 commits)")[![anthony0030](https://avatars.githubusercontent.com/u/13033263?v=4)](https://github.com/anthony0030 "anthony0030 (42 commits)")[![GuiEpi](https://avatars.githubusercontent.com/u/71637165?v=4)](https://github.com/GuiEpi "GuiEpi (35 commits)")[![patw0929](https://avatars.githubusercontent.com/u/3055294?v=4)](https://github.com/patw0929 "patw0929 (26 commits)")[![tinovyatkin](https://avatars.githubusercontent.com/u/5350898?v=4)](https://github.com/tinovyatkin "tinovyatkin (16 commits)")[![bgb10](https://avatars.githubusercontent.com/u/25452313?v=4)](https://github.com/bgb10 "bgb10 (16 commits)")[![CorvS](https://avatars.githubusercontent.com/u/16050553?v=4)](https://github.com/CorvS "CorvS (15 commits)")[![elonmir](https://avatars.githubusercontent.com/u/1140767?v=4)](https://github.com/elonmir "elonmir (9 commits)")[![samosad](https://avatars.githubusercontent.com/u/1986478?v=4)](https://github.com/samosad "samosad (7 commits)")[![Tim-Intellipharm](https://avatars.githubusercontent.com/u/6766530?v=4)](https://github.com/Tim-Intellipharm "Tim-Intellipharm (6 commits)")[![willashley23](https://avatars.githubusercontent.com/u/9400869?v=4)](https://github.com/willashley23 "willashley23 (6 commits)")[![brunops](https://avatars.githubusercontent.com/u/1735844?v=4)](https://github.com/brunops "brunops (6 commits)")[![Mr0grog](https://avatars.githubusercontent.com/u/74178?v=4)](https://github.com/Mr0grog "Mr0grog (5 commits)")[![ehmicky](https://avatars.githubusercontent.com/u/8136211?v=4)](https://github.com/ehmicky "ehmicky (5 commits)")[![carlssonemil](https://avatars.githubusercontent.com/u/10532336?v=4)](https://github.com/carlssonemil "carlssonemil (5 commits)")[![dcoste](https://avatars.githubusercontent.com/u/5860538?v=4)](https://github.com/dcoste "dcoste (4 commits)")[![jtwalters](https://avatars.githubusercontent.com/u/153132?v=4)](https://github.com/jtwalters "jtwalters (4 commits)")[![bclark8923](https://avatars.githubusercontent.com/u/2468167?v=4)](https://github.com/bclark8923 "bclark8923 (4 commits)")

---

Tags

angularformattinginputinternational-telephonejavascript-pluginlibphonenumberphone-numberreactreactjssveltetypescriptvalidationvuejsi18ncodemobileinternationalinputflagcountrynumbertelephoneteldial

### Embed Badge

![Health badge](/badges/jackocnr-intl-tel-input/health.svg)

```
[![Health](https://phpackages.com/badges/jackocnr-intl-tel-input/health.svg)](https://phpackages.com/packages/jackocnr-intl-tel-input)
```

###  Alternatives

[giggsey/libphonenumber-for-php

A library for parsing, formatting, storing and validating international phone numbers, a PHP Port of Google's libphonenumber.

5.0k159.6M527](/packages/giggsey-libphonenumber-for-php)[laminas/laminas-i18n

Provide translations for your application, and filter and validate internationalized values

7925.8M238](/packages/laminas-laminas-i18n)[giggsey/libphonenumber-for-php-lite

A lite version of giggsey/libphonenumber-for-php, which is a PHP Port of Google's libphonenumber

9216.6M75](/packages/giggsey-libphonenumber-for-php-lite)[waavi/sanitizer

Data sanitizer and Laravel 7 form requests with input sanitation.

433589.9k5](/packages/waavi-sanitizer)[elegantweb/sanitizer

Sanitization library for PHP and the Laravel framework.

1151.1M3](/packages/elegantweb-sanitizer)[dniccum/phone-number

A Laravel Nova phone number field with input masking and validation support.

70467.4k](/packages/dniccum-phone-number)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
