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");
- No es strips
/
strings, ya que es una url válida. - 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.