这个javascript正则表达式代码在处理URLS时做了什么?

fun*_*eah 3 javascript regex

我正在寻找别人的elses代码库和我作为一个javascript noob和双倍所以一个正则表达式noob我无法弄清楚以下几行:

var url = sel.anchorNode.parentNode.href;
var match = self.location.href.replace(/\/$/i, '');
var replaced = url.replace(match,'');
Run Code Online (Sandbox Code Playgroud)

我把它读作:

  1. 将var url设置为当前所选节点的父节点的href值
  2. 将var 匹配设置为浏览器当前URL,并删除尾部'/'(如果存在)
  3. 将var 替换为1.中返回的字符串,并将2.中返回的字符串从中删除

如果我正确地阅读它,我就无法弄清楚它将如何做任何事情.我能想到的情况是,当前所选节点的父节点将具有指向当前URL的href值.

所以我想我读错了.

T.J*_*der 5

因为href锚的属性是完全解析的URL(即使href属性是相对的),所以它会删除当前页面的路径并返回相对URL.例如,在页面上:

http://example.com/foo/bar/

有像这样的链接

<a href="nifty.html">...</a>
Run Code Online (Sandbox Code Playgroud)

...你href从锚点得到的是:

http://example.com/foo/bar/nifty.html

...然后http://example.com/foo/bar从中删除,给你:

/nifty.html

在这种情况下,当然,这可能不是你真正想要的.:-)我不得不承认我没有看到代码是如何有用的,脱离上下文,但有时候背景是王...