我需要提取此网址的hello/world
部分:
http://example.com/#tags/hello/world
我完全被分裂,替换和连接所困扰。最好的方法是什么?
答案 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);
答案 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);