Foros del Web » Programando para Internet » Javascript »

"Traducción" - Ayuda

Estas en el tema de "Traducción" - Ayuda en el foro de Javascript en Foros del Web. Hola a todos! "RENEGANDO", "RE CALIENTE", "PARA EL CULO", etc. son algunas de las palabras que acompañan mi respuesta a la pregunta diaria "como andas?" ...
  #1 (permalink)  
Antiguo 20/05/2005, 05:05
Avatar de Hereje  
Fecha de Ingreso: junio-2002
Ubicación: Córdoba, Argentina
Mensajes: 439
Antigüedad: 21 años, 11 meses
Puntos: 2
"Traducción" - Ayuda

Hola a todos!

"RENEGANDO", "RE CALIENTE", "PARA EL CULO", etc. son algunas de las palabras que acompañan mi respuesta a la pregunta diaria "como andas?" desde hace ya tres dias consecutivos sincesantes!

El tema es que (generalmente programo en vbscript, no le hago al javascript), que firefox no me reconoce el codigo vbscript del lado cliente. Conclusión, utilizar javascript, no? (esto lo lei en algun lado me parece).

Al no estar muy ducho en el tema, se me complicó un poquito. Básicamente lo que necesito es ver si alguien me puede dar una mano en "traducir" este código vbscript a javascript.

No voy a saber agradecer tal contribución, un "muchas gracias" y "te amo hasta la muerte" espero satisfaga al colaborador!

Código:
function validar_clave()
	dim clave1, clave2
	clave1 = trim(document.getElementById("claveuno").value)
	clave2 = trim(document.getElementById("clavedos").value)
	dim er, temp
	temp = false
	if len(clave1) > 3 and len(clave1) < 21 then
		set er = New RegExp
		er.Pattern = "^[a-z0-9]+$"
		er.IgnoreCase = True
		temp = er.Test(clave1)
		if temp = true and clave1 <> clave2 then
			temp = false
			alert("Las claves ingresadas no son iguales!")
		elseif temp = false then
			alert("Las claves ingresadas no son correctas o tienen espacios en blanco!")
		elseif temp = true then
			document.getElementById("md5clave").value = MD5(clave1)
			document.getElementById("claveuno").value = ""
			document.getElementById("clavedos").value = ""
		end if
		set er = nothing
	else
		alert("Las claves ingresadas no son correctas o estan en blanco!")
	end if
	validar_clave = temp
end function
	
function validar()
	valido = false
	if validar_mail then
		if validar_clave then valido = true
	else
		alert("El email ingresado no es valido o esta en blanco!")
	end if
	validar = valido
end function
	
function validar_mail()
	Dim bValido, Mail
	bValido = True
	Mail = trim(document.getElementById("correo").value)
	If Len(Mail) < 5 Then
		bValido = False
	Else
		If InStr(1, Mail, "@") = 0 Then
			bValido = False
		Else
			If InStr(1, Mail, ".") = 0 Then
				bValido = False
			Else
				If InStr(InStr(1, Mail, "@"), Mail, ".") < InStr(1, Mail, "@") Then
					bValido = False
				End If
			End If
		End If
	End If
	
	validar_mail = bValido
end function
Hasta luego!
__________________
Sergio

Última edición por Hereje; 20/05/2005 a las 05:34
  #2 (permalink)  
Antiguo 20/05/2005, 10:25
Avatar de ludovico2000  
Fecha de Ingreso: noviembre-2003
Ubicación: Bizkaia
Mensajes: 1.315
Antigüedad: 20 años, 6 meses
Puntos: 2
Voy a intentarlo:

function validar_clave() {
clave1 = trim(document.getElementById("claveuno").value)
clave2 = trim(document.getElementById("clavedos").value)
temp = false
if len(clave1) > 3 and len(clave1) < 21 then
er = New RegExp
er.Pattern = "^[a-z0-9]+$"
er.IgnoreCase = True
temp = er.Test(clave1)
if temp = true and clave1 <> clave2 then
temp = false
alert("Las claves ingresadas no son iguales!")
else temp = false then
alert("Las claves ingresadas no son correctas o tienen espacios en blanco!")
else temp = true then
document.getElementById("md5clave").value = MD5(clave1)
document.getElementById("claveuno").value = ""
document.getElementById("clavedos").value = ""
end if
er = nothing
else
alert("Las claves ingresadas no son correctas o estan en blanco!")
end if
validar_clave = temp
}

function validar(){
valido = false
if validar_mail then
if validar_clave then valido = true
else
alert("El email ingresado no es valido o esta en blanco!")
end if
validar = valido
}

function validar_mail(){
bValido = True
Mail = trim(document.getElementById("correo").value)
If Len(Mail) < 5 Then
bValido = False
Else
If InStr(1, Mail, "@") = 0 Then
bValido = False
Else
If InStr(1, Mail, ".") = 0 Then
bValido = False
Else
If InStr(InStr(1, Mail, "@"), Mail, ".") < InStr(1, Mail, "@") Then
bValido = False
End If
End If
End If
End If

validar_mail = bValido
}

Yo no sé mucho, y seguramente no esté bien, pero así a lo mejor tentamos a alguien que sepa más a corregirme
  #3 (permalink)  
Antiguo 21/05/2005, 03:46
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Buenas,

La función Trim() no existe en javascript pero hice una función que devuelve el mismo resultado.

Lo que tampoco existe en javascript es la función md5() pero ahí yá no he querido entrar (demasiao lío )

He visto que hay por la red scripts en js para simular esta función y devolver lo mismo, te sugiero lo agregues a tu código fuente.

Busca en google por +md5 +javascript

aquí un ejemplo http://pajhome.org.uk/crypt/md5/

si no agregas una función js de nombre MD5 te devolverá error. El resto debería funcionar sin problemas.

Código:
<script type="text/javascript">
function Trim(texto){
	espacio = " "
	esp = false
	if(texto.charAt(0) == espacio){
		texto = texto.substr(1)
		esp = true
	}
	if(texto.charAt(texto.length-1) == espacio){
		texto = texto.substring(0,texto.length-1)
		esp = true
	}
	if(esp){
		Trim(texto)
	}
	else{return texto}
}
function validar_clave(){
	var clave1, clave2
	clave1 = Trim(document.getElementById("claveuno").value)
	clave2 = Trim(document.getElementById("clavedos").value)
	var er, temp
	temp = false
	if (clave1.length > 3 && clave1.length < 21){
		er = RegExp("^[a-z0-9]+$","i")
		temp = er.test(clave1)
		if(temp && (clave1 != clave2)){
			temp = false
			alert("Las claves ingresadas no son iguales!")
			return false
		}
		if(!temp){
			alert("Las claves ingresadas no son correctas o tienen espacios en blanco!")
			return false
		}
		if (temp){
			document.getElementById("md5clave").value = MD5(clave1)
			document.getElementById("claveuno").value = ""
			document.getElementById("clavedos").value = ""
		}
		er = null
	}
	else{
		alert("Las claves ingresadas no son correctas o estan en blanco!")
	}
	validar_clave = temp
}
function validar(){
	valido = false
	if (validar_mail){
		if (validar_clave){valido = true}
	else
		alert("El email ingresado no es valido o esta en blanco!")
	}
	validar = valido
}
function validar_mail(){
	var bValido, Mail
	bValido = true
	Mail = Trim(document.getElementById("correo").value)
	if(Mail.length < 5){
		bValido = False
	}
	else{
		if(Mail.indexOf("@") > 0){
			bValido = false
		}
		else{
			if(Mail.indexOf(".") > 0){
				bValido = false
			}
			else{
				if(Mail.indexOf(".") < Mail.indexOf("@")){
					bValido = false
				}
			}
		}
	}
	
	validar_mail = bValido
}

</script>
Un saludo

Última edición por tunait; 21/05/2005 a las 03:53
  #4 (permalink)  
Antiguo 21/05/2005, 03:57
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
... para probarlo de momento sin el md5 comenta la línea en donde se llama con dos barras delante //

//document.getElementById("md5clave").value = MD5(clave1)

Con eso funcionará el script pero sin enviar al campo md5clave el valor encriptado

Si lo pruebas sin anular esta línea y sin tener una función md5 definida te devolverá error de "se esperaba un objeto".

Si luego el formulario es gestionado en el servidor tal vez podrías encriptar el password allá usando la función md5 que yá tenías en el server en vez de en el navegador
  #5 (permalink)  
Antiguo 21/05/2005, 03:59
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
...ah, y recuerda que javascript es case-sensitive así que no será lo mismo md5 que MD5. Si la función se declara con su nombre en minúsculas asegúrate de que cuando la llames lo hagas también en minúsculas
  #6 (permalink)  
Antiguo 22/05/2005, 13:20
Avatar de Hereje  
Fecha de Ingreso: junio-2002
Ubicación: Córdoba, Argentina
Mensajes: 439
Antigüedad: 21 años, 11 meses
Puntos: 2
Muchas gracias tunait !!

Con respecto ala función MD5, pues está incluida en el documento más arriba de este código. Se me pasó en no comentarlo.

La razón por la cual encripto la clave en el cliente, es para que no "haga un viaje desencriptada", donde pueden interceptar y saber la clave sin problemas, de esta forma se las complico un poco. (creo que tarda 2 dias y pico desencriptar una clave md5 y no es 100% exacto el resultado).

Ahora mismo me pongo a probar tu código, te aviso luego como me fue.

Gracias nuevamente!
__________________
Sergio
  #7 (permalink)  
Antiguo 22/05/2005, 14:22
Avatar de Hereje  
Fecha de Ingreso: junio-2002
Ubicación: Córdoba, Argentina
Mensajes: 439
Antigüedad: 21 años, 11 meses
Puntos: 2
Hoo.., sigo con problemas!

Primero que tuve que cambiar cada valor de retorno de función por "return variable". Ahi empezó a relacionarse todo.

Luego descubri por ahi un "False" en vez de un "false", lo cual parece que no es lo mismo!

La función para validar email no funciona, si bien detecta cuando el campo esta vacio, no detecta si la dirección de email es valida, es decir, si ingreso "hola" ya me la da como valida, en vbscript esto no era asi.

La funcion de las claves anda todo espectacular, excepto cuando pongo en clave1 un espacio unicamente " ". Ahi se guarda en la variable un "undefined" y hace que no funcione ni la comparación.

El resto anda todo a la perfección.

Bueno, espero respuesta por algun comentario o ayudita.

Salu2!
__________________
Sergio
  #8 (permalink)  
Antiguo 22/05/2005, 14:37
Avatar de Hereje  
Fecha de Ingreso: junio-2002
Ubicación: Córdoba, Argentina
Mensajes: 439
Antigüedad: 21 años, 11 meses
Puntos: 2
Pude solucionar el validador de email (lo cambie por uno que encontre en las FAQs. Queda lo otro nomas!
__________________
Sergio
  #9 (permalink)  
Antiguo 23/05/2005, 03:53
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Con la parte del e-mail las neuronas yá no carburaban mucho , pensaba proponerte una validación más simple con expresiones regulares. Supongo que la que habrás usado de las faqs es la que usa RegExp.

Dos horas más tarde de dejarte el código alguien dejó en las faq una forma mucho más elegante y concisa de poder hacer un trim() a una cadena. He probado con esa forma y no devuelve undefined.

así cámbia la función Trim() por esto otro en su lugar

(sacado de las faq)

Código:
String.prototype.Trim = function(){ 
      return this.replace(/\s+$|^\s+/g,""); 
  }
y estas dos líneas

clave1 = Trim(document.getElementById("claveuno").value)
clave2 = Trim(document.getElementById("clavedos").value)

cámbialas por esto

clave1 = document.getElementById("claveuno").value.Trim()
clave2 = document.getElementById("clavedos").value.Trim()


Yá me contarás
  #10 (permalink)  
Antiguo 24/05/2005, 00:29
Avatar de Hereje  
Fecha de Ingreso: junio-2002
Ubicación: Córdoba, Argentina
Mensajes: 439
Antigüedad: 21 años, 11 meses
Puntos: 2
tunait !!!

quedó todo a la perfección !!!
muchas gracias por todo y a tu disposición para lo que necesites.

un abrazo!!
__________________
Sergio
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:32.