Javascript的正则expression式:删除第一个和最后一个斜杠

我有这些string在JavaScript中:

/banking/bonifici/italia /banking/bonifici/italia/ 

我想删除第一个和最后一个斜杠,如果它存在。

我尝试了^\/(.+)\/?$但它不起作用。

阅读一些post在stackoverflow我发现PHP有修剪function,我可以使用他的JavaScript翻译( http://phpjs.org/functions/trim:566 ),但我宁愿一个“简单”的正则expression式。

 return theString.replace(/^\/|\/$/g, ''); 

“用空stringreplace全部( /.../g )前导斜杠( ^\/ )或( | )尾部斜杠( \/$ )”。

在这里没有真正的理由使用正则expression式,string函数将正常工作:

 var string = "/banking/bonifici/italia/"; if (string.charAt(0) == "/") string = string.substr(1); if (string.charAt(string.length - 1) == "/") string = string.substr(0, string.length - 1); // string => "banking/bonifici/italia" 

看到这个在jsFiddle上的行动 。

参考文献:

  • String.substr
  • String.charAt

以防万一有人需要一个不成熟的优化在这里…

http://jsperf.com/remove-leading-and-trailing-slashes/5

 var path = '///foo/is/not/equal/to/bar///' var count = path.length - 1 var index = 0 while (path.charCodeAt(index) === 47 && ++index); while (path.charCodeAt(count) === 47 && --count); path = path.slice(index, count + 1)