
Lo más normal es que cuando estemos creando una página web capturemos datos del usuario. Cuando el usuario introduce datos tiene la capacidad, si no ponemos remedio, a que introduzca cualquier carácter. Y en este punto hay que tener un cierto cuidado, ya que el usuario puede introducir caracteres especiales, los cuales en un posterior tratamiento del texto nos pueden generar problemas. Entre ellos tenemos la barra invertida (\), la comilla simple (‘), el ampersand (&),…
Cuando utilizamos Javascript estos caracteres tienes que aparecer escapados mediante la barra invertida. Así la cadena ‘Hola Mundo’ se representará como \’Hola Mundo\’.
var cadena = "\'Hola Mundo\'";
Cuando estemos utilizando cadenas de caracteres es bueno que intentemos escapar los caracteres. Para ello nos podemos apoyar en las funciones escape() y unescape(). Para poder utilizarlas lo realizaremos de la siguiente forma:
var cadena1 = escape("'Hola Mundo'"); // El resultado es %27Hola%20Mundo%27
var cadena2 = escape("20%5=0"); // El resultado es 20%255%3D0
En este ejemplo vamos a coger un texto libre que nos introduzca el usuario y se lo vamos a escapar. Lo primero crear dos áreas de texto mediante textarea:
La función escapar, obtiene el texto de un área de texto, mediante getElementById() y lo vuelca en otra. Aplicando en medio el método escape().
function escapar(){
document.getElementById("textoescapado").value = escape(document.getElementById('texto').value);
}
Damian
Bueno lo que me pasa es que estoy trabajando con una valor string (str.innerHTML) que se trae cuando el usuario ingresa un término a buscar y el problema esta que si le pongo escape(str.innerHTML) hay algunos términos que vienen de str.innerHTML que no me los toma y estos son los que tienen la letra «ñ», porque pasa esto?, los demás los toma todo.
Quiero creer que tampoco tomará los que tienen acentos.
Mi página anda bien, el texto muestra todo sin problema, los acentos y la letra ñ, pero solo me pasa en la busqueda y con el escape() de JavaScript.
Ahora en mi sitio le saque el escape() ya que no me trae los terminos que poseen ñ, pero lo necesito ya que con escape() puedo mostrar los terminos «AT&T», T&L», etc.
Espero su ayuda.
Paulo Arieu
Hola,saludos.
Yo le deje una consulta similar a esta en el foro. Es para poder sacarme los caracteres de fin de linea, que se producen cuando aprieto enter.
Use esta funcion que ud. puso,pero no me dio resultados.
Espero su ayuda,
Saludos
Paulo