Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/enniel/adonis-phone-validator


https://github.com/enniel/adonis-phone-validator

adonis adonis-framework adonisjs indicative phone phone-validation validation

Last synced: 11 days ago
JSON representation

Awesome Lists containing this project

README

        

# Adonis Phone Validator

Easy phone number validation, parsing and formatting for [adonis framework](http://adonisjs.com).

## Installation

1. Add package:

```bash
$ npm i adonis-phone-validator --save
```
or

```bash
$ yarn add adonis-phone-validator
```

2. Register providers inside the your start/app.js file.

```js
const providers = [
...
'adonis-phone-validator/providers/PhoneValidatorProvider',
...
]
```
## Validation example

```js
// with country code and phone type
const rules = {
phone: 'phone:RU,mobile'
}

const data = {
phone: '+7 (800) 555-35-35'
}

await Validator.validate(data, rules)

// without country code and with phone type (default country code: US)
const rules = {
phone: 'phone:mobile'
}

const data = {
phone: '+1-202-555-0120'
}

await Validator.validate(data, rules)

// without country code and phone type (default country code: US)
const rules = {
phone: 'phone'
}

const data = {
phone: '+1-202-555-0120'
}

await Validator.validate(data, rules)
```

Supported types:
- premium_rate
- toll_free
- shared_cost
- voip
- personal_number
- pager
- uan
- voicemail
- fixed_line_or_mobile
- fixed_line
- mobile

For more information about supported types see [libphonenumber-js](https://github.com/halt-hammerzeit/libphonenumber-js).

## Sanitization example

```js
// parse phone
const rules = {
phone: 'parse_phone:RU'
}

const data = {
phone: '+7 (800) 555-35-35'
}

const sanitized = Validator.sanitize(data, rules) // 8005553535

// format phone to internation format
const rules = {
phone: 'format_phone:RU,!i'
}

const data = {
phone: '8005553535'
}

const sanitized = Validator.sanitize(data, rules) // +7 800 555 35 35

// format phone to national format
const rules = {
phone: 'format_phone:RU,!n'
}

const data = {
phone: '8005553535'
}

const sanitized = Validator.sanitize(data, rules) // 800 555-35-35

// format phone to international plaintext (E.164) format
const rules = {
phone: 'format_phone:RU,!ip'
}

const data = {
phone: '8005553535'
}

const sanitized = Validator.sanitize(data, rules) // +78005553535
```

## Credits

- [Evgeni Razumov](https://github.com/enniel)

## Support

Having trouble? [Open an issue](https://github.com/enniel/adonis-phone-validator/issues/new)!

## License

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.