javascript string trailing-slash

javascript - Cadena de retorno sin barra inclinada



string trailing-slash (9)

Aquí un pequeño ejemplo de url.

var currentUrl = location.href; if(currentUrl.substr(-1) == ''/'') { currentUrl = currentUrl.substr(0, currentUrl.length - 1); }

registre la nueva url

console.log(currentUrl);

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?


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.

const stripTrailingSlash = (str) => { return str.endsWith(''/'') ? str.slice(0, -1) : str; };


Este fragmento es más preciso:

str.replace(/^(.+?)//*?$/, "$1");

  1. No es strips / strings, ya que es una url válida.
  2. Tiras cadenas con múltiples barras inclinadas.

La manera más fácil que conozco es esta

function stipTrailingSlash(str){ if(srt.charAt(str.length-1) == "/"){ str = str.substr(0, str.length - 1);} return str }

Esto comprobará si hay un / en el extremo y si está allí, quítalo si no lo va a devolver la cadena como estaba

Solo una cosa que aún no puedo comentar @ThiefMaster. ¿No te importa la memoria? ¿Podrás ejecutar un subserio solo por un tiempo?

Se corrigió la caducidad del índice basado en cero en la cadena.


Prueba esto:

function someFunction(site) { return site.replace(///$/, ""); }


Sé que la pregunta es acerca de las barras al final, pero me encontré con esta publicación cuando busqué recortar barras (tanto en la cabeza como en la cola), y esta publicación me ayudó a resolver mi problema, así que aquí es cómo recortar una o más barras en el inicio y final de una cadena:

''///I am free///''.replace(/^//+|//+$/g, ''''); // returns ''I am free''


Yo usaría una expresión regular:

function someFunction(site) { // if site has an end slash (like: www.example.com/), // then remove it and return the site without the end slash return site.replace(///$/, '''') // Match a forward slash / at the end of the string ($) }

Sin embargo, querrá asegurarse de que el site variable sea una cadena.


function someFunction(site) { if (site.indexOf(''/'') > 0) return site.substring(0, site.indexOf(''/'')); return site; }


function stripTrailingSlash(str) { if(str.substr(-1) === ''/'') { return str.substr(0, str.length - 1); } return str; }

Nota: IE8 y anteriores no son compatibles con compensaciones substr negativas. Utilice str.length - 1 en su lugar si necesita admitir esos navegadores antiguos.