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)