好的,我想说我有一个网址
example.com/hello/world/20111020(带或不带斜杠)。 我想做的是从域example.com中删除网址。然后打破hello world 20111020成阵列。但我的另一个问题是。有时URL没有/ hello / world / 20111020或者只是/ hello /所以我需要先确定example.com之后是否有任何内容,如果没有,那么什么都不做,因为显然没有什么可以使用的。但是,如果每个/我都需要将它按顺序添加到此数组中。所以我可以使用数组[0]并知道它是你好的。
我几天前尝试了一些东西,但遇到了拖尾斜线的问题,它一直打破了剧本,我遗憾地放弃了这个想法。今天我正在寻找新的想法。
答案 0 :(得分:15)
这应该有效
var url = 'example.com/hello/world/20111020/';
//get rid of the trailing / before doing a simple split on /
var url_parts = url.replace(/\/\s*$/,'').split('/');
//since we do not need example.com
url_parts.shift();
现在url_parts
将指向数组["hello", "world", "20111020"]
。
答案 1 :(得分:3)
您可以使用jQuery-URL-Parser插件:
var file = $.url.attr("file");
在您的情况下,您可能想要使用segment()
:
var segments = $.url('http://allmarkedup.com/folder/dir/example/index.html').segment();
// segments = ['folder','dir','example','index.html']
答案 2 :(得分:2)
<script type="text/javascript">
function splitThePath(incomingUrl){
var url = document.createElement("a");
url.href = incomingUrl;
//url.hash Returns the anchor portion of a URL
//url.host Returns the hostname and port of a URL
//url.hostname Returns the hostname of a URL
//url.href Returns the entire URL
//url.pathname Returns the path name of a URL
//url.port Returns the port number the server uses for a URL
//url.protocol Returns the protocol of a URL
//url.search Returns the query portion of a URL
if(url.pathname && url.pathname != ""){
var pathnameArray = url.pathname.split("/");
}else{
}
}
</script>
答案 3 :(得分:0)
我为网址
创建了以下正则表达式^https?://(((0|([1-9][0-9]{0,1}))(\.(0|([1-9][0-9]{0,1}))){3})|([a-zA-Z]([a-zA-Z0-9$\-_@\.&+!*"\'\(\),]|(%[0-9a-fA-F][0-9a-fA-F]))*(\.([a-zA-Z]([a-zA-Z0-9$\-_@\.&+!*"\'\(\),]|(%[0-9a-fA-F][0-9a-fA-F]))*))*))(/|((/([a-zA-Z]([a-zA-Z0-9$\-_@\.&+!*"\'\(\),]|(%[0-9a-fA-F][0-9a-fA-F]))*))*))$
它是为MySql编写的 - 我确信你可以根据自己的需要进行操作。
顺便说一句 - 我从RFC中获取了这个想法 - 此时这个号码逃脱了我
答案 4 :(得分:0)
对于解析URL,一种不同的方法可以使用锚点DOM对象。
var a = document.createElement("A");
a.href = 'http://example.com:8080/path/to/resources?param1=val1¶ms2=val2#named-anchor';
a.protocol; // http:
a.host; // example.com:8080
a.hostname; //example.com
a.port; // 8080 (in case of port 80 empty string returns)
a.pathname; // /path/to/resources
a.hash; // #named-anchor
a.search // ?param1=val1¶ms2=val2