一组python用于验证数据的函数详解编程语言

这是一组python用于验证数据是否合法的函数,包括检测类型是否为整数、浮点数、字符串、字典、元组、数组、bool类型等,还可以检测是否为 货币、是否为空、是否是合法的日期格式,是否是邮件地址(Email),是否是中文字符,是否符合用户账号的规则,是否是合法的ip地址等等。

#! /usr/bin/env python 
#coding=utf-8 
import types 
import re 
  
  
""" 
验证所有表单提交的数据 
""" 
  
#判断是否为整数 15 
def IsNumber(varObj): 
  
    return type(varObj) is types.IntType 
  
#判断是否为字符串 string 
def IsString(varObj): 
  
    return type(varObj) is types.StringType 
  
#判断是否为浮点数 1.324 
def IsFloat(varObj): 
    return type(varObj) is types.FloatType 
  
#判断是否为字典 {'a1':'1','a2':'2'} 
def IsDict(varObj): 
  
    return type(varObj) is types.DictType 
  
#判断是否为tuple [1,2,3] 
def IsTuple(varObj): 
  
    return type(varObj) is types.TupleType 
  
#判断是否为List [1,3,4] 
def IsList(varObj): 
  
    return type(varObj) is types.ListType 
  
#判断是否为布尔值 True 
def IsBoolean(varObj): 
  
    return type(varObj) is types.BooleanType 
  
#判断是否为货币型 1.32 
def IsCurrency(varObj): 
  
    #数字是否为整数或浮点数 
    if IsFloat(varObj) and IsNumber(varObj): 
        #数字不能为负数 
        if varObj >0: 
            return isNumber(currencyObj) 
            return False 
    return True 
  
#判断某个变量是否为空 x 
def IsEmpty(varObj): 
  
    if len(varObj) == 0: 
        return True 
    return False 
  
#判断变量是否为None None 
def IsNone(varObj): 
  
    return type(varObj) is types.NoneType# == "None" or varObj == "none": 
  
#判断是否为日期格式,并且是否符合日历规则 2010-01-31 
def IsDate(varObj): 
  
    if len(varObj) == 10: 
        rule = '(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)$/' 
        match = re.match( rule , varObj ) 
        if match: 
            return True 
        return False 
    return False 
  
#判断是否为邮件地址 
def IsEmail(varObj): 
  
    rule = '[/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+$' 
    match = re.match( rule , varObj ) 
  
    if match: 
        return True 
    return False 
  
#判断是否为中文字符串 
def IsChineseCharString(varObj): 
  
    for x in varObj: 
        if (x >= u"/u4e00" and x<=u"/u9fa5") or (x >= u'/u0041' and x<=u'/u005a') or (x >= u'/u0061' and x<=u'/u007a'): 
           continue 
        else: 
           return False 
    return True 
  
  
#判断是否为中文字符 
def IsChineseChar(varObj): 
  
    if varObj[0] > chr(127): 
       return True 
    return False 
  
#判断帐号是否合法 字母开头,允许4-16字节,允许字母数字下划线 
def IsLegalAccounts(varObj): 
  
    rule = '[a-zA-Z][a-zA-Z0-9_]{3,15}$' 
    match = re.match( rule , varObj ) 
  
    if match: 
        return True 
    return False 
  
#匹配IP地址 
def IsIpAddr(varObj): 
  
    rule = '/d+/./d+/./d+/./d+' 
    match = re.match( rule , varObj ) 
  
    if match: 
        return True 
    return False 
  
  
  
if __name__=='__main__': 
    print 'IsDate:',IsDate('2010-01-31') 
    print 'IsNone:',IsNone(None) 
    print 'IsEmpty:',IsEmpty('1') 
    print 'IsCurrency:',IsCurrency(1.32) 
    print 'IsList:',IsList([1,3,4]) 
    print 'IsTuple:',IsTuple([1,3,4]) 
    print 'IsDict:',IsDict({'a1':'1','a2':'2'}) 
    print 'IsFloat:',IsFloat(1.2) 
    print 'IsString:',IsString('string') 
    print 'IsNumber:',IsNumber(15) 
    print 'IsEmail:',IsEmail([email protected]') 
    print 'IsChineseChar:',IsChineseChar(u'啊') 
    print 'IsChineseCharString:',IsChineseCharString(u'啊倒萨') 
    print 'IsLegalAccounts:',IsLegalAccounts('alan_z') 
    print 'IsIpAddr:',IsIpAddr('127.1110.0.1') 
    pass

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/8065.html

(0)
上一篇 2021年7月18日
下一篇 2021年7月18日

相关推荐

发表回复

登录后才能评论