python CheckUtils(邮箱验证、url验证、手机验证)
2017-08-27 13:35
239 查看
#!/usr/bin/env python # coding=utf-8 # https://github.com/BingLau7/Threshold/blob/244fabd7758841ad4dd2eb8c30b1ce81a083c2fa/threshold/utils.py import re class VerifiedExpression: EMAIL_ADDRESS_REG = re.compile( r"(^[-!#$%&'*+/=?^_`{}|~0-9A-Z]+(\.[-!#$%&'*+/=?^_`{}|~0-9A-Z]+)*" # dot-atom r'|^"([\001-\010\013\014\016-\037!#-\[\]-\177]|\\[\001-\011\013\014\016-\177])*")' r'@(?:[A-Z0-9](?:[A-Z0-9-]{0,247}[A-Z0-9])?\.)+(?:[A-Z]{2,6}|[A-Z0-9-]{2,}(?<!-))$', re.IGNORECASE ) URL_ADDRESS_REG = re.compile( r"^(https?|ftp):\/\/" # http:// or https:// or ftp:// r"(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?" # domain r"(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|" # ip r"((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|" r"(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])" r"([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*" r"([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+" r"(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|" r"(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])" r"([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*" r"([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)" r"(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+" r"(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?" r"(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|" r"[!\$&'\(\)\*\+,;=]|:|@)|" r"[\uE000-\uF8FF]|\/|\?)*)?" r"(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|" r"(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$" ) PHONE_REG = re.compile( r"^1[3,4,5,7,8]{1}[0-9]{9}$" ) class Check: @staticmethod def is_email(email): """ 邮箱验证 :param email: :return: """ return VerifiedExpression.EMAIL_ADDRESS_REG.search(email) is not None @staticmethod def is_url(url): """ url 验证 :param url: :return: """ return VerifiedExpression.URL_ADDRESS_REG.search(url) is not None @staticmethod def is_include(param, vals): return param in vals @staticmethod def is_exclude(param, vals): return not param in vals @staticmethod def is_phone(phone): """ 手机验证 :param phone: :return: """ return VerifiedExpression.PHONE_REG.search(phone) is not None @staticmethod def is_valid_datetime(datetime): import datetime try: datetime.datetime.strptime(val, formats) return True except ValueError: return False
相关文章推荐
- js验证邮箱、手机、URL
- 检查和验证的js方法封装(手机,身份证,IPv4,IPv6、邮箱、URL等)
- 验证中文、英文、电话、手机、邮箱、数字、数字和字母、Url地址和Ip地址的正则表达式
- Android正则表达式,验证邮箱、手机号码等。
- iOS 验证邮箱和手机 拨打电话
- android java 验证手机号码 Utils
- C#验证类 可验证:邮箱,电话,手机,数字,英文,日期,身份证,邮编,网址,IP
- 常用正则表达式大全,手机、电话、邮箱、身份证(最严格的验证)、IP地址、网址、日期等,一般前台js验证,来这里就够了...
- jquery验证邮箱、手机、身份证号码
- 常用正则表达式大全,手机、电话、邮箱、身份证(最严格的验证)、IP地址、网址、日期等,一般前台js验证
- java正则验证电话,手机,邮箱,日期,金额
- 通用JS验证(手机,电话,邮箱,QQ)
- [转]java正则表达式验证手机号码ip,邮箱
- C#验证邮箱,电话,手机,数字,英文,日期,身份证,邮编,网址,IP类.. (转后整理)
- 常用正则表达式大全,手机、电话、邮箱、身份证(最严格的验证)、IP地址、网址、日期等,一般前台js验证,来这里就够了...
- JavaScript之正则表达式验证邮箱,手机号码,身份证,网址,QQ,邮政编码,中文
- jquery验证手机号码、邮箱格式是否正确示例代码
- PHP自带方法验证邮箱、URL、IP是否合法
- android验证手机号码和邮箱
- Android 正则表达式验证手机和邮箱格式是否正确