Foros del Web » Programando para Internet » Javascript »

Evitar caracteres raros en cadena de texto

Estas en el tema de Evitar caracteres raros en cadena de texto en el foro de Javascript en Foros del Web. Hola amigos del foro !!! Tengo una variable: frm.attach1.value Esta tiene un valor supongamos : "C:\Documents and Settings\Administrador\Escritorio\imganedeldia.jpg " Hasta ahi no hay problema, pero ...
  #1 (permalink)  
Antiguo 14/06/2007, 09:13
 
Fecha de Ingreso: diciembre-2004
Mensajes: 139
Antigüedad: 20 años
Puntos: 1
Evitar caracteres raros en cadena de texto

Hola amigos del foro !!!

Tengo una variable:

frm.attach1.value

Esta tiene un valor supongamos :

"C:\Documents and Settings\Administrador\Escritorio\imganedeldia.jpg "

Hasta ahi no hay problema, pero cuando el usuario sube un archivo con un caracter raro, por ejemplo:

"C:\Documents and Settings\Administrador\Escritorio\foto#1.jpg"

Es ahi donde me tira error, por eso es que les queria pedir si alguien me puede ayudar con esto:
Nesecito que borre todo menos el nombre del archivo y despues verificar que no contenga cararcteres raros, simplemente letras o a lo sumo los "-" y "_". Pasa que con javascript no estoy muy ducho.

Gracias !!!!

Última edición por gabriel em; 15/06/2007 a las 09:01
  #2 (permalink)  
Antiguo 15/06/2007, 07:27
 
Fecha de Ingreso: diciembre-2004
Mensajes: 139
Antigüedad: 20 años
Puntos: 1
Re: Evitar caracteres raros en cadena de texto

Nadie sabe?
  #3 (permalink)  
Antiguo 15/06/2007, 08:52
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 19 años, 3 meses
Puntos: 3
Re: Evitar caracteres raros en cadena de texto

quieres algo en JAVA? por que tengo algo que te puede servir, es una función en la que le ingresas los caracteres que quieres que busque y puedes mandar una alerta al usuario que debe ingresar archivos validos...pero esto en es JS, espero te sirva...

Código HTML:
function CheckInput(){
    var st = document.tuFormulario.campoFile.value;

        patron =/[ñáàéèíìóòúù´`]/; // Añade todos los caracteres no aceptados
	if(patron.test(st)){
		alert("Solo se aceptan nombres válidos de archivos.");
		return false;
	}
        return true;
    
}
__________________
Wow! No se que decir...
  #4 (permalink)  
Antiguo 15/06/2007, 09:05
 
Fecha de Ingreso: diciembre-2004
Mensajes: 139
Antigüedad: 20 años
Puntos: 1
Re: Evitar caracteres raros en cadena de texto

No perdon! quise decir javascript, ya edite el mensaje.
Lo que me pasaste esta buenisimo, lo que me faltaria es aislar el nombre de la cadena completa, por ejmplo:

"C:\Documents and Settings\Administrador\Escritorio\foto#1.jpg"

Que quite los ultimos 4 digitos, lo cual quedaria:

"C:\Documents and Settings\Administrador\Escritorio\foto#1"

Que quite de la pirmer barra inclusive en adelante, mirando de izquierda a derecha, lo cual quedaria:

"foto#1"

Y ahi aplicaria el script que me pasaste. Pasa que no se las funciones en javascript que hacen esos dos pasos.
  #5 (permalink)  
Antiguo 15/06/2007, 09:29
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 19 años, 3 meses
Puntos: 3
Re: Evitar caracteres raros en cadena de texto

mm te paso alguna idea para que lo hagas, ahora no tengo mucho tiempo, pero hay te va...

podrias sacar el tamaño de la cadena, con un for recorrerla e ir capturando en una variable la posicion de los / , el último valor que guarde sabras que a partir de hay esta elñ nombre del archivo, entonces con un subStr puedes obtener el nombre dando como parametro la posicion del ´ultimo / y usando un indexOf puedes decirle hasta donde buscar en la cadena y te devuelve el nombre, ahora tengo que hacer aglo, espero puedas hacerlo y si no, mas alrato te hecho la mano... es solo una idea pero creo que funciona...Suerte, te recomiendo que lo intentes...
__________________
Wow! No se que decir...
  #6 (permalink)  
Antiguo 15/06/2007, 10:19
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años, 8 meses
Puntos: 35
Re: Evitar caracteres raros en cadena de texto

loading...........


Pasale la función encodeURI(tucadena) y listo.


connection closed.
__________________

Maborak Technologies
  #7 (permalink)  
Antiguo 15/06/2007, 10:23
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 19 años, 3 meses
Puntos: 3
Re: Evitar caracteres raros en cadena de texto

Que tal MaBoRaK,

La funcion no es encodeURL(cadena) ? y que hace esa función?
__________________
Wow! No se que decir...
  #8 (permalink)  
Antiguo 15/06/2007, 10:27
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años, 8 meses
Puntos: 35
Re: Evitar caracteres raros en cadena de texto

loading..........

Es encodeURI o encodeURIComponent

Codifica una cadena a su equivalente en URI

Por ejemplo

"a la "
lo pone
"a%20la"


connection closed.
__________________

Maborak Technologies
  #9 (permalink)  
Antiguo 15/06/2007, 10:33
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años, 8 meses
Puntos: 35
Re: Evitar caracteres raros en cadena de texto

loading........

http://www.w3schools.com/jsref/jsref_encodeURI.asp
"C:\Documents and Settings\Administrador\Escritorio\foto#1.jpg"

a

"C:Documents%20and%20SettingsAdministradorEscritor io%0Coto#1.jpg"

Momento!!!! aca hay algo raro....

C:\Documents and Settings\Administrador\Escritorio\foto#1.jpg

las toma como caracteres de escape :S

Averiguaré....mas

connection closed.
__________________

Maborak Technologies
  #10 (permalink)  
Antiguo 15/06/2007, 10:43
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años, 8 meses
Puntos: 35
Re: Evitar caracteres raros en cadena de texto

loading............

Bueno descubrí que la cadena que nos pasaste no es la que javascript RELAMENTE TOMA cuando se le asigna una ruta... lo que hace javascript en este caso el DOM Input File es poner \\ a los \ ..

el resultado es.

C%3A%5CDocuments%20and%20Settings%5CAdministrador% 5CEscritorio%5Cfoto%231.jpg

asi que funciona (y)


connection closed.
__________________

Maborak Technologies
  #11 (permalink)  
Antiguo 16/06/2007, 16:51
 
Fecha de Ingreso: diciembre-2004
Mensajes: 139
Antigüedad: 20 años
Puntos: 1
Re: Evitar caracteres raros en cadena de texto

Maborak me vendria perfecto el equivalente de esa funcion es asp la sabes?
  #12 (permalink)  
Antiguo 16/06/2007, 17:02
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 19 años, 3 meses
Puntos: 3
Re: Evitar caracteres raros en cadena de texto

que no es una función de JS? no es igual en cualquier lenguaje?
__________________
Wow! No se que decir...
  #13 (permalink)  
Antiguo 17/06/2007, 12:27
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 2 meses
Puntos: 45
Re: Evitar caracteres raros en cadena de texto

Cita:
Iniciado por gabriel em Ver Mensaje
lo que me faltaria es aislar el nombre de la cadena completa, por ejmplo:

"C:\Documents and Settings\Administrador\Escritorio\foto#1.jpg"

Que quite los ultimos 4 digitos, lo cual quedaria:

"C:\Documents and Settings\Administrador\Escritorio\foto#1"

Que quite de la pirmer barra inclusive en adelante, mirando de izquierda a derecha, lo cual quedaria:

"foto#1"
Cita:
Iniciado por zyon
...con un for recorrerla...
Para eso tenemos lastIndexOf(), ultima ocurrencia del parámetro en la cadena a la que se le aplica:

Código PHP:
var ruta "C:\\Documents and Settings\\Administrador\\Escritorio\\foto#1.jpg";
var 
nombre ruta.substringruta.lastIndexOf("\\") + "\\".length ruta.lastIndexOf(".") ); 
En una sola línea tendríamos el nombre sin problemas (admitiendo que el nombre no contiene contrabarras, no puede; y también que la extensión no contiene puntos, que quizá si que pueda como .tar.gz).


Además, aparte de la función encodeURI() tenemos la de escape() para los caracteres como dos puntos, almohadilla... etc.


Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #14 (permalink)  
Antiguo 18/06/2007, 06:27
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 19 años, 3 meses
Puntos: 3
Re: Evitar caracteres raros en cadena de texto

jeje no me la sabia esa, por eso me encanta este foro!!!!
__________________
Wow! No se que decir...
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 19:08.