UsageΒΆ
To use phonevalidator in an eve.Eve
project:
from phonevalidator import ValidatorMixin
from eve.io.mongo import Validator
from eve import Eve
class MyValidator(Validator, ValidatorMixin):
""" Custom Validator that adds phone number
constraints to validation schemas.
"""
pass
app = Eve(validator=MyValidator)
...
Validation Examples:
from phonevalidator import Validator
schema = {
'phone': {
'type': 'phonenumber',
'region': 'US', # default
'formatPhoneNumber': True,
'phoneNumberFormat': 'NATIONAL', # default
}
}
doc = {'phone': '5135555555'}
validator = Validator(schema)
print(validator.validate(doc))
# True
print(validator.document)
# {'phone': '(513) 555-5555'}
Note
Default region is ‘US’, default phoneNumberFormat is ‘NATIONAL’. These can also be set using environment variables. To set the region using and environment variable use ‘DEFAULT_PHONE_REGION’ and use ‘PHONE_NUMBER_FORMAT’ to set the phoneNumberFormat.
See also
phonenumbers.PhoneNumberFormat
: for valid formats
Similar to above, but using defaults:
from phonevalidator import Validator
schema = {
'phone': {
'type': 'phonenumber',
'formatPhoneNumber': True,
}
}
doc = {'phone': '5135555555;ext=1234'}
validator = Validator(schema)
print(validator.validate(doc))
# True
print(validator.document)
# {'phone': '(513) 555-5555 ext. 1234'}