No se que queres decir con esto: cómo calcular el dígito verificador
pero podes verificar si los digitos siguen un formato predeterminado con expressiones regulares.
Lo que pasa es que para documentos de este tipo no solo siguen un patron o formato, sino que al final tienen un numero verificador que es calculado con referencia a los otros numeros, para valga la redundancia validar el número final.
no soy muy bueno en pascual
alguien podria poner el algoritmo ya sacado?
No es pascual, es PL/SQL, lenguaje de programacion con sentencias TSQL para oracle.
Para el del DUI el proceso que recuerdo es este:
-el numero que esta a la derecha del guion se conoce como digito verificador
-se coloca el numero sin guiones y con ceros a la izquierda
-deben ser 9 caracters
-se toman los primeros 8 caracteres (sin el digito verificador) y a cada uno se le multiplica por la posicion en la que se encuentra. Partiendo que la posicion 9 es el primer numero de la izquierda.
-se suman todos los resultados
-se hace un mod de la suma dividido por 10 (osea toma el remanente de esa division)
-Resta 10 menos el remanente de la division
-si la resta da 0 el DUI es correcto
-si la resta es igual al digito verificador el DUI es correcto
-si la resta es distinta al digito verificador el DUI es incorrecto