我正在尝试验证手机号码,以下是我目前所做的,但它似乎不起作用。
当传递的值看起来不像手机号码时,我需要它来引发验证错误。手机号码的长度可以是 10 到 14 位,以 0 或 7 开头,并且可以添加 44 或 +44。
def validate_mobile(value):
""" Raise a ValidationError if the value looks like a mobile telephone number.
"""
rule = re.compile(r'/^[0-9]{10,14}$/')
if not rule.search(value):
msg = u"Invalid mobile number."
raise ValidationError(msg)
最佳答案
我建议使用 phonenumbers包是 Google 的 libphonenumber 的 python 端口,现在包含移动运营商的数据集:
import phonenumbers
from phonenumbers import carrier
from phonenumbers.phonenumberutil import number_type
number = "+49 176 1234 5678"
carrier._is_mobile(number_type(phonenumbers.parse(number)))
如果号码是手机号码,则返回 True,否则返回 False。请注意,该号码必须是有效的国际号码,否则将抛出异常。您也可以使用 phonenumbers在给定区域提示的情况下解析电话号码。
关于python - 如何使用 Python 验证手机号码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16135069/