Answers:
试试这个:
function someFunction(site)
{
return site.replace(/\/$/, "");
}
return site.replace(/\/+$/, "");
function stripTrailingSlash(str) {
if(str.substr(-1) === '/') {
return str.substr(0, str.length - 1);
}
return str;
}
注意:IE8和更早的版本不支持负的substr偏移量。str.length - 1
如果您需要支持那些古老的浏览器,请改用。
我会使用正则表达式:
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 ($)
}
不过,您需要确保变量site
是一个字符串。
此代码段更准确:
str.replace(/^(.+?)\/*?$/, "$1");
/
字符串,因为它是有效的网址。我知道问题与尾部斜杠有关,但是我在搜索斜杠时发现了这篇文章(在字符串文字的尾部和头部),因为人们需要这种解决方案,所以我在这里发布了一个解决方案:
'///I am free///'.replace(/^\/+|\/+$/g, ''); // returns 'I am free'
更新:
正如@Stephen R在评论中提到的那样,如果要在字符串文字的尾部和头部同时删除斜杠和反斜杠,则应编写:
'\/\\/\/I am free\\///\\\\'.replace(/^[\\/]+|[\\/]+$/g, '') // returns 'I am free'
.replace(/^[\\/]+|[\\/]+$/g, '')
我知道的简单方法是
function stipTrailingSlash(str){
if(srt.charAt(str.length-1) == "/"){ str = str.substr(0, str.length - 1);}
return str
}
然后,它将在最后检查一个/,如果没有,则将其删除,否则将返回您的字符串
只是我无法评论的一件事@ThiefMaster哇,您不关心内存,您会为一个if跑一个substr吗?
修复了字符串中基于零的索引的计算。
基于@vdegenne的答案...如何去除:
单斜杠:
theString.replace(/\/$/, '');
单斜杠或连续斜杠:
theString.replace(/\/+$/g, '');
单斜杠:
theString.replace(/^\//, '');
单个或连续的斜杠:
theString.replace(/^\/+/g, '');
单个前导和尾部斜杠:
theString.replace(/^\/|\/$/g, '')
单斜杠或连续的斜杠和斜杠:
theString.replace(/^\/+|\/+$/g, '')
为了处理这两个斜线和回斜线,更换的情况下,\/
与[\\/]
function someFunction(site) {
if (site.indexOf('/') > 0)
return site.substring(0, site.indexOf('/'));
return site;
}
subtring
?除此之外,它还会删除第一个斜杠及其后的所有内容。
substring
吗?同样是的,我的意思是删除第一个斜杠及其后的所有内容,因为它确实满足了所发布的问题和示例数据的要求。