Files
alf/proyecto/validacion.py
2025-12-09 11:09:08 +01:00

106 lines
3.1 KiB
Python

from variables import *
from util import comprobarLetra, gradoDecimal, letraSigno
def validarTelefono(telefono):
match = T.match(telefono)
if match is not None and not match['num']:
return {
'parte1': match.group('parte1'),
'parte2': match.group('parte2'),
'parte3': match.group('parte3'),
}
elif match is not None and match['num']:
return {
'num': match.group('num'),
}
else:
return None
def validarDni(dni):
match = D.match(dni)
if match and match['letrainicio']:
valido = comprobarLetra(f"{reemplazo_nie[match['letrainicio']]}{match['numero']}{match['letrafinal']}")
if valido:
return {
'letrainicio': match.group('letrainicio'),
'numero': match.group('numero'),
'letrafinal': match.group('letrafinal'),
}
return None
elif match and not match['letrainicio']:
valido = comprobarLetra(f"{match['numero']}{match['letrafinal']}")
if valido:
return {
'numero': match['numero'],
'letrafinal': match.group('letrafinal'),
}
else:
return None
else:
return None
def validarInstante(instante):
match = I.match(instante)
if match and not match['segundo']: # formato 1
return {
'año': match.group('anyo'),
'mes': match.group('mes'),
'dia': match.group('dia'),
'hora': match.group('hora'),
'minuto': match.group('minuto'),
'segundo': '00'
}
elif match and match['segundo']: # formatos 2 y 3
return {
'año': match.group('anyo'),
'mes': match.group('mes'),
'dia': match.group('dia'),
'hora': match.group('hora'),
'minuto': match.group('minuto'),
'segundo': match.group('segundo'),
}
else:
return None
def validarCoordenada(cadena):
m = P.fullmatch(cadena)
if m is not None:
if m.group("Grados1"):
grados1 = m.group("Grados1")
grados2 = m.group("Grados2")
minutos1 = m.group("Minutos1")
minutos2 = m.group("Minutos2")
segundos1 = m.group("Segundos1")
segundos2 = m.group("Segundos2")
letra1 = m.group("Letra1")
letra2 = m.group("Letra2")
latitud = gradoDecimal(grados1,minutos1,segundos1)
longitud = gradoDecimal(grados2,minutos2,segundos2)
signo1 = letraSigno(letra1)
signo2 = letraSigno(letra2)
else: # formato 1
signo1 = m.group("Signo1")
latitud = float(m.group("Coord1"))
signo2 = m.group("Signo2")
longitud = float(m.group("Coord2"))
if signo1 == '-':
latitud *= -1
if signo2 == '-':
longitud *= -1
return {
'latitud': latitud,
'longitud': longitud
}
else:
return None