Intl Tel Input
A JavaScript library for entering and validating international telephone numbers
#International Telephone Input
For entering, formatting, and validating international telephone numbers. Available in vanilla JavaScript, or as React, Vue, Angular, and Svelte components.
#Sponsored by
Use Twilio's API to build phone verification, SMS 2FA, appointment reminders, marketing notifications and so much more. We can't wait to see what you build.
#Resources
Check out the website, where you can find a full set of docs, a live playground where you can try out all of the options, as well as plenty of examples of different setups.
#Features
🔍 Fast country picking
- Search by country name or dial code
- Full keyboard navigation
✨ Smart defaults
- Auto-detect the user's country
- Example placeholders per country
📞 Formatting & output
- Formats the number as the user types
- Extract standard E.164 numbers to store
🛡️ Validation
- Validate numbers with specific error types
- Only allow users to type valid digits and enforce max length
🌍 International & accessible
- Translated into 50+ languages
- Support for RTL and alternative numerals
- Screen reader-friendly ARIA markup
🎛️ Developer-friendly
- Theme it with CSS variables (e.g. dark mode) or utility classes like Tailwind
- TypeScript definitions included
#Browser support
All modern browsers: Chrome/Edge 93+, Safari 15.4+, Firefox 92+ (roughly, anything released since early 2022). Need to support something older? See the FAQ.
#Contributing
See the contributing guide 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
- Flag images from flag-icons
- Original country data from mledoze's World countries in JSON, CSV and XML
- Formatting/validation/example number code from libphonenumber
User testing powered by BrowserStack Open-Source Program
#License
MIT