python regex 删除所有非数字字符并确保有效的电话号码
Posted
技术标签:
【中文标题】python regex 删除所有非数字字符并确保有效的电话号码【英文标题】:python regex remove all non-numberic characters and ensure valid phone number 【发布时间】:2015-10-03 19:09:55 【问题描述】:我想将我所有的电话号码验证移到一个 django 验证器字段中。如何使用这个phone number 验证器来包括剥离字符串中的所有非数字字段?
例如'123.123.1234' 会变成 '1231231234'
我知道你可以用 replaceAll( "[^\\d]", "" )
之类的替换来做到这一点,但它必须是 django 验证器的一个正则表达式
validate_phone_number = RegexValidator(
regex=re.compile(r'^\+?1?\d9,15$'),
message="Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed.",
code='invalid'
)
【问题讨论】:
【参考方案1】:我不认为你真的可以这样做......但是你可以将表单输入指定为仅数字(可能使用forms.IntegerField
)
或者你可以编写自己的验证器
from django.core.exceptions import ValidationError
def validate_numeric(value):
if not (9 <= len(re.sub("[^0-9]","",value)) <= 15):
raise ValidationError('%s is not a valid phone number' % value)
【讨论】:
以上是关于python regex 删除所有非数字字符并确保有效的电话号码的主要内容,如果未能解决你的问题,请参考以下文章
RegEx(在 JavaScript 中查找/替换) - 匹配非字母数字字符但忽略 - 和 +