Tengo dos variables:
site1 = "www.somesite.com";
site2 = "www.somesite.com/";
Quiero hacer algo como esto
function someFunction(site)
{
// If the var has a trailing slash (like site2),
// remove it and return the site without the trailing slash
return no_trailing_slash_url;
}
¿Cómo hago esto?
Respuestas:
Prueba esto:
fuente
return site.replace(/\/+$/, "");
Nota: IE8 y versiones anteriores no son compatibles con compensaciones de substr negativas. Úselo
str.length - 1
en su lugar si necesita admitir esos navegadores antiguos.fuente
ES6 / ES2015 proporciona una API para preguntar si una cadena termina con algo, lo que permite escribir una función más limpia y legible.
fuente
Yo usaría una expresión regular:
Sin
site
embargo, querrás asegurarte de que la variable sea una cadena.fuente
Este fragmento es más preciso:
/
cadenas, ya que es una url válida.fuente
Sé que la pregunta es sobre barras diagonales finales, pero encontré esta publicación durante mi búsqueda de barras diagonales (tanto en la cola como en la cabeza de un literal de cadena), ya que la gente necesitaría esta solución. Estoy publicando una aquí:
ACTUALIZACIÓN :
como @Stephen R mencionó en los comentarios, si desea eliminar las barras diagonales y las barras diagonales inversas tanto en la cola como en la cabeza de un literal de cadena, escribiría:
fuente
.replace(/^[\\/]+|[\\/]+$/g, '')
La forma más fácil que conozco es esta
Esto verificará si hay un / al final y si está allí, elimínelo, si no lo está, devolverá su cadena como estaba
Solo una cosa que no puedo comentar todavía @ThiefMaster wow, no te importa la memoria ¿lol runnign un substr solo por un if?
Se corrigió la clasificación para el índice basado en cero en la cadena.
fuente
Aquí un pequeño ejemplo de URL.
registrar la nueva url
fuente
Basado en la respuesta de @vdegenne ... cómo despojar:
Barra inclinada final simple:
theString.replace(/\/$/, '');
Barras finales simples o consecutivas:
theString.replace(/\/+$/g, '');
Barra diagonal única:
theString.replace(/^\//, '');
Barras iniciales simples o consecutivas:
theString.replace(/^\/+/g, '');
Barras iniciales y finales simples:
theString.replace(/^\/|\/$/g, '')
Barras iniciales y finales simples o consecutivas:
theString.replace(/^\/+|\/+$/g, '')
Para manejar ambas barras y traseros barras, reemplace las instancias de
\/
la[\\/]
fuente
otra solución.
fuente
fuente
subtring
? Además de eso, elimina la primera barra y todo lo que sigue.substring
? También sí, quise eliminar la primera barra oblicua y todo lo siguiente, ya que llena la factura de la pregunta y los datos de ejemplo publicados.