csharp Valida rut Chileno con c#,basado el algoritmo modulo 11

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp Valida rut Chileno con c#,basado el algoritmo modulo 11相关的知识,希望对你有一定的参考价值。

/// <summary>
/// Validador de RUT Chileno
/// Hace uso del algoritmo Modulo 11
///
/// Chilean ID Number validator
/// Use the algorithm called Module 11
/// </summary>
class Rut {
		
	/// <summary>
	/// Metodo de validación de rut con digito verificador
	/// dentro de la cadena
	/// </summary>
	/// <param name="rut">string</param>
	/// <returns>booleano</returns>
	public static bool ValidaRut(string rut) {
		rut = rut.Replace(".", "").ToUpper();
		Regex expresion = new Regex("^([0-9]+-[0-9K])$");
		string dv = rut.Substring(rut.Length - 1, 1);
		if (!expresion.IsMatch(rut)) {
			return false;
		}
		char[] charCorte = { '-' };
		string[] rutTemp = rut.Split(charCorte);
		if (dv != Digito(int.Parse(rutTemp[0]))) {
			return false;
		}
		return true;
	}
	
	
	/// <summary>
	/// Método que valida el rut con el digito verificador
	/// por separado
	/// </summary>
	/// <param name="rut">integer</param>
	/// <param name="dv">char</param>
	/// <returns>booleano</returns>
	public static bool ValidaRut(string rut, string dv) {
		return ValidaRut(rut + "-" + dv);
	}
	
	/// <summary>
	/// método que calcula el digito verificador a partir
	/// de la mantisa del rut
	/// </summary>
	/// <param name="rut"></param>
	/// <returns></returns>
	public static string Digito(int rut) {
		int suma = 0;
		int multiplicador = 1;
		while (rut != 0) {
			multiplicador++;
			if (multiplicador == 8)
			multiplicador = 2;
			suma += (rut % 10) * multiplicador;
			rut = rut / 10;
		}
		suma = 11 - (suma % 11);
		if (suma == 11)	{
			return "0";
		} else if (suma == 10) {
			return "K";
		} else {
			return suma.ToString();
		}
	}
}

以上是关于csharp Valida rut Chileno con c#,basado el algoritmo modulo 11的主要内容,如果未能解决你的问题,请参考以下文章

javascript rut chileno validador y mascara

java Valida RUT con Java

javascript HTML5智利RUT验证器

PHP Php - Formatear con puntos RUT

php ValidaçãoroIP

markdown Validaçõesespeciais(关注)