Borrar los ultimos caracteres de un string JS

oho

Buenas noches,

Soy un novato en javascript pero normalmente estas cosas sencillas consigo sacarlas. Llevo toda la jodida tarde estancado en el mismo sitio, necesito borrar los ultimos caracteres de una cadena javascript y no soy capaz, he encontrado en un foro el metodo slice() que dicen que hace eso pero por mas que le doy vueltas a mi no me funciona.

Voy a explicar exactamente lo que quiero conseguir por si me estoy comiendo mucho la cabeza y se puede hacer de otra manera.

spoiler

Esto ha acabado conmigo por hoy.
Un saludo y gracias de antemano

NeB1

#1 Tienes varias opciones, gastar slice no te la recomiendo porque cada vinculo puede tener una longitud diferente al vínculo anterior, así que no habría una forma sencilla de saber que longitud tenía el último ID a no ser que lo guardases en una variable global.

PERO puestos a crear una variable global, porque no te guardas la URL en una variable global?

<script type="text/javascript">
    __BASE_URL__ = document.location.toString();

   function rewrite_url( ID )
   {
        window.location = __BASE_URL__ + '#n'+ ID;  
} </script>

Esa sería la forma óptima desde mi punto de vista... por supuesto, si quieres seguir con el tema de manipular strings, te aconsejo que utilices

var array = cadenaurl.split('#');

ya que la url 'limpia' siempre se te devolverá en la posición 0 del array que devuelve la función split.

1 respuesta
JuAn4k4

http://www.w3schools.com/jsref/jsref_substring.asp

1 respuesta
oho

#2 Muchas gracias por la respuesta creo que ya lo tengo encaminado, pero hay un concepto que creo que me está fallando. ¿Es posible que document.location cuando lo guardo en una variable, el tipo de dato que guarda no sea un string?

Cuando utilizo el split() de esta manera:

ruta = document.location;
cadena = ruta.split('#');
alert(cadena);

No me ejecuta el alert, sin embargo si defino una cadena y le hago el split si me funciona.

ruta = 'hola#que#tal';
cadena = ruta.split('#');
alert(cadena);

¿Como puedo saber el tipo de dato que se guarda en la variable cuando la defino con document.location o como puedo convertirlo en cadena? ¿Seria muy descabellado probar a hacerlo de esta manera?

ruta = &quot;'&quot; + document.location + &quot;'&quot;;
ruta = ruta.replace.(&quot;'&quot;, &quot;&quot;);
cadena = ruta.split('#');

#3 Gracias, estuve buscando eso y no lo encontré, tal como he expuesto el problema, ese metodo me valdria perfectamente, pero en este caso nunca se la longitud exacta de la ruta porque le paso por GET también la paginación.

index.php?seccion=noticia
index.php?seccion=noticia&amp;pagina=1
index.php?seccion=noticia&amp;pagina=12

EDITO: no me ha salido bien se supone que los &quot; son "

Nada, si hago el replace() no me funciona tampoco, no se por que.

1 respuesta
NeB1

#4 prueba con esto

ruta = document.location.toString();
cadena = ruta.split('#');
alert(cadena[0]);

ESPECIAL ATENCIÓN EN toString()

1 1 respuesta
oho

#5 ahora si, la virgen.

Mil gracias!!!

Usuarios habituales

  • oho
  • NeB1
  • JuAn4k4