正则表达式剥离域名

时间:2011-02-28 22:43:30

标签: javascript regex

快速简单的正则表达式问题

我的字符串中有一个我需要删除的域名 - 总是http://www.,域名始终以“/”结尾

g_adv_fullpath_old = g_adv_fullpath_old.replace(/http\:\/\/www\.(.*?)\//ig, '');

如何创建正则表达式来删除域名?

任何帮助将不胜感激

4 个答案:

答案 0 :(得分:9)

我只想分开“/”。例如:

>>> "http://www.asdf.com/a/b/c".split("/").slice(3).join("/")
'a/b/c'

答案 1 :(得分:2)

为什么出现并发症?简单的indexOf会做 首先删除http://www(10个字符),然后删除第一个斜杠之前的所有内容。

var s = "http://www.google.com/test";
s = s.substr(10);
s = s.substr(s.indexOf('/'));
alert(s);

split David 建议。

An example

答案 2 :(得分:2)

如果您要删除http://www.和以下斜杠(以及其后的任何内容),请尝试:

g_adv_fullpath_old.replace(/http:\/\/www\.(.*?)\/.*/ig, '$1')

答案 3 :(得分:1)

您还可以扩展stringobject,使其支持urlParts

示例

http://jsfiddle.net/stofke/Uwdha/

<强>的Javascript

String.prototype.urlParts = function() {
    var loc = this;
    loc = loc.split(/([a-z0-9_\-]{1,5}:\/\/)?(([a-z0-9_\-]{1,}):([a-z0-9_\-]{1,})\@)?((www\.)|([a-z0-9_\-]{1,}\.)+)?([a-z0-9_\-]{3,})((\.[a-z]{2,4})(:(\d{1,5}))?)(\/([a-z0-9_\-]{1,}\/)+)?([a-z0-9_\-]{1,})?(\.[a-z]{2,})?(\?)?(((\&)?[a-z0-9_\-]{1,}(\=[a-z0-9_\-]{1,})?)+)?/g);
    loc.href = this;
    loc.protocol = loc[1];
    loc.user = loc[3];
    loc.password = loc[4];
    loc.subdomain = loc[5];
    loc.domain = loc[8];
    loc.domainextension = loc[10];
    loc.port = loc[12];
    loc.path = loc[13];
    loc.file = loc[15];
    loc.filetype = loc[16];
    loc.query = loc[18];
    loc.anchor = loc[22];
    //return the final object
    return loc;
};

<强>用法:

 var link = "http://myusername:mypassword@test.asdf.com/a/b/c/index.php?test1=5&test2=789#tite";
 var path = link.urlParts().path;
 var path = link.urlParts().user;