enniel / adonis-phone-validator

MIT License
0 stars 0 forks source link
adonis adonis-framework adonisjs indicative phone phone-validation validation

Adonis Phone Validator

Easy phone number validation, parsing and formatting for adonis framework.

Installation

  1. Add package:
$ npm i adonis-phone-validator --save

or

$ yarn add adonis-phone-validator
  1. Register providers inside the your start/app.js file.
const providers = [
  ...
  'adonis-phone-validator/providers/PhoneValidatorProvider',
  ...
]

Validation example

// 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:

For more information about supported types see libphonenumber-js.

Sanitization example

// 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

Support

Having trouble? Open an issue!

License

The MIT License (MIT). Please see License File for more information.