🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: chile.comp.programacion
Article #549

Re: ayuda con validar rut

#549
From: Rickoj
Date: Wed, 12 Mar 2008 13:37
192 lines
7835 bytes
baje ese de ahi, y no me funciono
voy a revisar nuevamente


"Mauricio Gomez" <pregunte@sileinteresa.com> escribi� en el mensaje 
news:fr7feh$dm2$1@news.nivel5.cl...
> Cual es el problema? que no te funciona o queda feo con muchos charat()?
>
> Pagina:
>
> http://www.juque.cl/demos/validador.rut.javascript/
>
>
> Codigo:
>
> //
> // Validador de Rut
> // Descargado desde http://www.juque.cl/
> //
> function revisarDigito( dvr )
> { dv = dvr + "" if ( dv != '0' && dv != '1' && dv != '2' && dv != '3' && 
> dv != '4' && dv != '5' && dv != '6' && dv != '7' && dv != '8' && dv != '9' 
> && dv != 'k'  && dv != 'K') { alert("Debe ingresar un digito verificador 
> valido"); window.document.form1.rut.focus(); 
> window.document.form1.rut.select(); return false; } return true;
> }
>
> function revisarDigito2( crut )
> { largo = crut.length; if ( largo < 2 ) { alert("Debe ingresar el rut 
> completo") window.document.form1.rut.focus(); 
> window.document.form1.rut.select(); return false; } if ( largo > 2 ) rut = 
> crut.substring(0, largo - 1); else rut = crut.charAt(0); dv = 
> crut.charAt(largo-1); revisarDigito( dv );
> if ( rut == null || dv == null )
> return 0
> var dvr = '0' suma = 0 mul  = 2
> for (i= rut.length -1 ; i >= 0; i--) { suma = suma + rut.charAt(i) * mul 
> if (mul == 7) mul = 2 else    mul++ } res = suma % 11 if (res==1) dvr = 
> 'k' else if (res==0) dvr = '0' else { dvi = 11-res dvr = dvi + "" }
> if ( dvr != dv.toLowerCase() ) { alert("EL rut es incorrecto") 
> window.document.form1.rut.focus(); window.document.form1.rut.select(); 
> return false }
>
> return true
> }
>
> function Rut(texto)
> { var tmpstr = ""; for ( i=0; i < texto.length ; i++ ) if ( 
> texto.charAt(i) != ' ' && texto.charAt(i) != '.' && texto.charAt(i) != 
> '-' )
> tmpstr = tmpstr + texto.charAt(i); texto = tmpstr; largo = texto.length;
> if ( largo < 2 ) { alert("Debe ingresar el rut completo") 
> window.document.form1.rut.focus(); window.document.form1.rut.select(); 
> return false; }
> for (i=0; i < largo ; i++ ) { if ( texto.charAt(i) !="0" && 
> texto.charAt(i) != "1" && texto.charAt(i) !="2" && texto.charAt(i) != "3" 
> && texto.charAt(i) != "4" && texto.charAt(i) !="5" && texto.charAt(i) != 
> "6" && texto.charAt(i) != "7" && texto.charAt(i) !="8" && texto.charAt(i) 
> != "9" && texto.charAt(i) !="k" && texto.charAt(i) != "K" )
>  { alert("El valor ingresado no corresponde a un R.U.T valido"); 
> window.document.form1.rut.focus(); window.document.form1.rut.select(); 
> return false; } }
> var invertido = ""; for ( i=(largo-1),j=0; i>=0; i--,j++ ) invertido = 
> invertido + texto.charAt(i); var dtexto = ""; dtexto = dtexto + 
> invertido.charAt(0); dtexto = dtexto + '-'; cnt = 0;
> for ( i=1,j=2; i<largo; i++,j++ ) { //alert("i=[" + i + "] j=[" + j 
> +"]" ); if ( cnt == 3 ) { dtexto = dtexto + '.'; j++; dtexto = dtexto + 
> invertido.charAt(i); cnt = 1; } else { dtexto = dtexto + 
> invertido.charAt(i); cnt++; } }
> invertido = ""; for ( i=(dtexto.length-1),j=0; i>=0; i--,j++ ) invertido = 
> invertido + dtexto.charAt(i);
> window.document.form1.rut.value = invertido.toUpperCase()
> if ( revisarDigito2(texto) ) return true;
> return false;
> }
>
> rro
>
>
> Rick_oj wrote:
>> vale pero no me sirve en vb
>> :(
>>
>> "gato2008chile" <gato2008chileSINESTO@gmail.com> escribi� en el mensaje 
>> news:fr7ao1$d1s$1@news.nivel5.cl...
>>> En VB hice uso de dos eventos y funciones, una validaba el formato y 
>>> otra el digito.
>>> chRut valida el formato, debe ser de la forma 123456-7,solo permite el 
>>> ingreso de numeros y "-", verifica que si el caracter es ingresado es 
>>> "-" este en la posicion largo-1,etc.
>>>
>>> En el evento change
>>> txtRut.Text = chRut(txtRut.Text)
>>> txtRut.SelStart = Len(txtRut.Text)
>>>
>>> En el evento keypress
>>>
>>> txtRut.Text = chRut(txtRut.Text)
>>> If KeyAscii = 13 Then
>>> ValRut(texto1.text)
>>> End If
>>>
>>>
>>>
>>> Public Function ValRut(ByVal cadena As String) As Boolean
>>> Dim ln As Integer, tp As Integer, i As Integer, _
>>> j As Integer, sum As Integer, ctemp As String
>>>
>>> ln = Len(cadena)
>>> If ln < 3 Then
>>>     ValRut = False
>>> ElseIf ln >= 3 Then
>>>     tp = InStr(1, cadena, "-", vbTextCompare)
>>>     If tp = 0 Then
>>>         ValRut = False
>>>     ElseIf tp <> (ln - 1) Then
>>>         ValRut = False
>>>     Else
>>>         sum = 0
>>>         j = 2
>>>         For i = (tp - 1) To 1 Step -1
>>>             st = Val(Mid(cadena, i, 1))
>>>             If st >= 0 And st <= 9 Then
>>>                 sum = sum + st * j
>>>                 j = j + 1
>>>                 If j = 8 Then
>>>                     j = 2
>>>                 End If
>>>             Else
>>>                 ValRut = False
>>>                 Exit Function
>>>             End If
>>>         Next
>>>         dv = sum Mod 11
>>>         ctemp = Mid(cadena, ln, 1)
>>>         If dv = 0 Then
>>>             If ctemp = "k" Or ctemp = "K" Then
>>>                 ValRut = True
>>>             Else
>>>                 ValRut = False
>>>             End If
>>>         Else
>>>
>>>             If (11 - dv) = Val(ctemp) Then
>>>                 ValRut = True
>>>             Else
>>>                 ValRut = False
>>>             End If
>>>         End If
>>>     End If
>>> End If
>>> End Function
>>>
>>>
>>> Public Function chRut(ByVal cadena As String) As String
>>> Dim ln As Integer
>>> Dim pos As Integer
>>> Dim cs As Integer
>>> Dim cadt As String
>>>
>>> ln = Len(cadena)
>>> pos = InStr(cadena, "-")
>>> If pos = 0 Then
>>>     chRut = IIf(Val(cadena) = 0, "", Format(Val(cadena)))
>>> ElseIf pos <= 4 Then
>>>     chRut = ""
>>> ElseIf pos = ln Then
>>>     chRut = Format(Val(Left(cadena, ln - 1))) & "-"
>>> ElseIf pos <= (ln - 1) Then
>>>     cadt = Left(cadena, pos + 1)
>>>     cs = Asc(Right(cadt, 1))
>>>     If ((cs < 48 Or cs > 57) And cs <> 13) _
>>>         And cs <> 45 Then
>>>             chRut = Left(cadt, ln - 1)
>>>     Else
>>>             chRut = cadt
>>>     End If
>>> End If
>>> End Function
>>>
>>>
>>> Rick_oj escribi�:
>>>> "Rick_oj" <rick_oj[sin-esto]@tutopia.com> escribi� en el mensaje 
>>>> news:fqq6gv$uj2$1@news.nivel5.cl...
>>>>> necesito validar el dichoso rut en un mismo campo de texto con el 
>>>>> guion, he encontrado varios script qu ehacen lo mismo, pero al 
>>>>> aplicarlo no me funciona, encontre este que es mas sencillo, pero lo 
>>>>> hace en dos campos de textos, y lo hace automatico (el digito 
>>>>> verificador)
>>>> nadie?
>>>> :(
>> 
Technical Details
Message-ID: <fr8mbi$hh0$1@news.nivel5.cl>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!news.glorb.com!news.kjsl.com!news.nivel5.cl!not-for-mail
References: <fqq6gv$uj2$1@news.nivel5.cl> <fr62f0$80a$1@news.nivel5.cl> <fr7ao1$d1s$1@news.nivel5.cl> <fr7eq4$diq$1@news.nivel5.cl> <fr7feh$dm2$1@news.nivel5.cl>

Show Full Headers
Complete Article Headers
X-Google-Thread: 1593cb,80adbb2b571c3e5b
X-Google-Attributes: gid1593cb,public,usenet
X-Google-Language: ENGLISH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!news.glorb.com!news.kjsl.com!news.nivel5.cl!not-for-mail
From: "Rick_oj" <rick_oj@[sin-esto]tutopia.com>
Newsgroups: chile.comp.programacion
Subject: Re: ayuda con validar rut
Date: Wed, 12 Mar 2008 10:37:58 -0300
Organization: Varios
Lines: 192
Message-ID: <fr8mbi$hh0$1@news.nivel5.cl>
References: <fqq6gv$uj2$1@news.nivel5.cl> <fr62f0$80a$1@news.nivel5.cl> <fr7ao1$d1s$1@news.nivel5.cl> <fr7eq4$diq$1@news.nivel5.cl> <fr7feh$dm2$1@news.nivel5.cl>
NNTP-Posting-Host: 190.160.68.32
Mime-Version: 1.0
Content-Type: text/plain;
 format=flowed;
 charset="iso-8859-1";
 reply-type=response
Content-Transfer-Encoding: 8bit
X-Trace: news.nivel5.cl 1205329074 17952 190.160.68.32 (12 Mar 2008 13:37:54 GMT)
X-Complaints-To: news@news.nivel5.cl
NNTP-Posting-Date: Wed, 12 Mar 2008 13:37:54 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198