提取部分URL

时间:2011-06-23 14:18:55

标签: javascript

我需要提取此网址的hello/world部分:

http://example.com/#tags/hello/world

我完全被分裂,替换和连接所困扰。最好的方法是什么?

7 个答案:

答案 0 :(得分:2)

function removePrefix(prefix,s) {
    return s.substr(prefix.length);
}
removePrefix('http://example.com/#tags/','http://example.com/#tags/hello/world')

答案 1 :(得分:2)

var result = "http://example.com/#tags/hello/world".replace("http://example.com/#tags/","");

以最快的方式使用此

var result = "http://example.com/#tags/hello/world".slice(25);

答案 2 :(得分:0)

yourString = yourString.replace(/http:\/\/example\.com\/#tags\//, '');

答案 3 :(得分:0)

我会这样做:

var newString = oldString.replace('http://example.com/#tags/', '');

答案 4 :(得分:0)

Split使用字符作为分隔符从字符串中创建数组。 所以这不是你想要的,因为你试图保持字符串的结尾,包括什么是自然分隔符。

substr删除字符串的前n个字符。 所以你可以做到

var remove_string = 'http://example.com/#tags/'
path.substr(remove_string.length); 

它会正常工作。

Replace查找给定的正则表达式并将其替换为第二个参数。 所以你也可以这样做(注意正则表达式包含在/ /中)

path = path.replace(/^http:\/\/example.com\/#tags\//,"")

因为角色的逃避而有点简洁,有点丑陋。

另外,作为以前的海报,您可以将匹配的字符串传递给替换而不是正则表达式。

答案 5 :(得分:0)

如果此代码旨在处理当前页面的URL,您可以使用window.location.hash属性来获取URL的锚点部分,并在第一个正斜杠后获取所有内容:

var h = window.location.hash;
var p = h.substring(h.indexOf('/') + 1);

[注意:如果锚中没有正斜杠,这将失败]

如果您需要为目前只在字符串变量中获取的URL执行此操作,则可以通过创建分离的DOM元素并读取其属性来从浏览器自己的URL解析器获得一些帮助:

var a = document.createElement('a');
a.href = 'http://example.com/some/path/#tags/hello/world';

// a.hash now contains '#tags/hello/world'
var h = a.hash;
var p = h.substring(h.indexOf('/') + 1);

请参阅http://jsfiddle.net/alnitak/xsEUW/了解演示。

答案 6 :(得分:-1)

如果我们假设http://example.com/#tags/是固定部分而其余部分是变量的。

您可以执行以下操作

  

var content ='http://example.com/#tags/hello/world';   
  var indicator ='#tags';   
  var result = content.substring(content.indexOf(indicator)+ indicator.length);