返回没有结尾的string

我有两个variables:

site1 = "www.somesite.com"; site2 = "www.somesite.com/"; 

我想要做这样的事情

 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; } 

我该怎么做呢?

尝试这个:

 function someFunction(site) { return site.replace(/\/$/, ""); } 
 function stripTrailingSlash(str) { if(str.substr(-1) === '/') { return str.substr(0, str.length - 1); } return str; } 

注意:IE8和更旧的版本不支持负的substr偏移量。 如果您需要支持那些古老的浏览器,请使用str.length - 1

我会使用正则expression式:

 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 ($) } 

尽pipe如此,你仍然要确保variablessite是一个string。

ES6 / ES2015提供了一个API来询问一个string是否以某些东西结尾,这使得编写一个更干净,更可读的函数。

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

我知道的easies方式是这样的

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

这将然后检查/结束,如果它有删除它,如果它不会返回您的string,因为它是

只是有一件事,我不能评论@ThiefMaster哇,你不关心内存你笑大声笑runnign substr只是为了?

修正了string从零开始的索引的调整。

这里有一个小的url例子。

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

logging新的url

 console.log(currentUrl); 

这个片段更准确:

 str.replace(/^(.+?)\/*?$/, "$1"); 
  1. 它不去除/string,因为它是一个有效的url。
  2. 它剥去了具有多个尾部斜杠的string。
 function someFunction(site) { if (site.indexOf('/') > 0) return site.substring(0, site.indexOf('/')); return site; } 
Interesting Posts