Gra*_*ntU 5 python regex django
我需要一个只验证英国手机号码的正则表达式.
英国手机号码可以在10-14数字之间,或者以数字开头07,或者省略或以数字0开头447.
重要的是,如果用户添加+44它应该被拒绝.
所以这些都是有效的:
07111111111
447111111111
这些都是无效的:
4471111111111
021929182711
00701029182
到目前为止我所拥有的:
rule = re.compile(r'^\+?(44)?(0|7)\d{9,13}$')
if not rule.search(value):
msg = u"Invalid mobile number."
raise ValidationError(msg)
Run Code Online (Sandbox Code Playgroud)
这还没有按照我的规则进行验证; 有人可以帮忙吗?
如果我正确理解它们,以下正则表达式似乎符合您的要求.
不允许使用+符号非常简单,因为您只创建了一个值的白名单,并且加号不在其中.
^(07[\d]{8,12}|447[\d]{7,11})$
正如本答案的评论中所提到的,这里不需要方括号.我把它们包括在内,让我对这个正则表达式的阅读更加容易.但是,以下也适用:
^(07\d{8,12}|447\d{7,11})$
| 归档时间: |
|
| 查看次数: |
8927 次 |
| 最近记录: |