在javascript
, 给定一个有效的url
, 例如,
http://seeplai2.trailsandtribulations.nat/admin/items?var=val#here
提取源、路径名、搜索和哈希的表达式是什么window.location
?
相对较弱regx
,以下是我的猜测:
origin: href.match(/(.*?)(\/|\?|#))[1]
pathname: href.match(\/\/[^\/]*([^\?#]*)/)[1]
search: (href.indexOf('?')>-1) ? href.match(/\?[^#]*)/)[1] : ''
hash: (href.indexOf('#')>-1) ? href.match(/(#.*)/)[1] : ''
这些看起来对吗?
这是示例代码:
<a href='/path?var=val1' onclick='doClick(event)'>Anchor1</a>
function doClick(e) {
var href = e.target.href;
var origin = href.match(/regx/)[1];
// if different origin, go there
if( origin != window.location.origin ) return;
// if only hash difference, let default take over
...
// if path different, process here
...
}