Hola a todos 👋
Quiero compartir una pequeña función que usamos en producción para validar RUTs chilenos en C#. Ha sido muy útil en sistemas de facturación e integración con el SII.
public static bool ValidarRut(string rut)
{
rut = rut.Replace(".", "").Replace("-", "");
int suma = 0;
int multiplicador = 2;
for (int i = rut.Length - 2; i >= 0; i--)
{
suma += int.Parse(rut[i].ToString()) * multiplicador;
multiplicador = multiplicador == 7 ? 2 : multiplicador + 1;
}
int resto = 11 - (suma % 11);
string dv = resto == 11 ? "0" : resto == 10 ? "K" : resto.ToString();
return dv == rut[^1].ToString().ToUpper();
}
Espero les sirva, y si tienen alguna mejora o versión en otro lenguaje, ¡feliz de verlas! 😄