Javascript:如何使用 RegExp 在 URL 中应用 "../"

标签 javascript jquery regex

什么是好的正则表达式,可以通过删除其相关父级来删除 URL 中的任何“../”?

例如:

http://www.example.com/main-directory/sub-directory/../index.html

至:

http://www.example.com/main-directory/index.html

最佳答案

最好的方法是在循环中使用此正则表达式:

[^\/]+\/\.\.\/

函数

然后你可以使用这个:

function path(string, t) {
    return (t = string.replace(/[^\/]+\/\.\.\//,'')) !== string ? path(t) : t
}

如果您使用最新版本的 JavaScript ES6,效果会更好:

var path = (s,t) => (t = s.replace(/[^\/]+\/\.\.\//,'')) != s ? path(s) : s;

替代方案

如果您不喜欢函数:

while ( string != (string = string.replace(/[^\/]+\/\.\.\//,'')));

关于Javascript:如何使用 RegExp 在 URL 中应用 "../",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32031794/

相关文章:

java - 具有 <ui :repeat> 的不同 div 标签 id

javascript - 与号的事件键代码?

javascript - Bootstrap 3 : Add a select list in button group

java - 正则表达式:如何不匹配几个字母

regex - 正则表达式表示连续两个相同的元音

Javascript 滚动菜单,仅在页面向下移动特定方式后启动

javascript - 如何向复制的网页文本添加额外信息

javascript - 删除 d3 工具提示 onclick

javascript - 为什么我不能在 ajax 成功中访问 $(this)

javascript - 如何在 Javascript 中使用正则表达式获取匹配和未命中的数组?