完全不熟悉编程,所以请原谅这个愚蠢的问题。 我有这个URL http://www.blahblah.com/some/thing/blah ..如何从第三个“/”后获得字符串
现在我需要我不想从反向去了第三个“/”,即,只是“/一些/事情”后出现的字符串.. 的URL是不同的对于每个页面,但协议和主机名是相同的。 有没有一种方法可以沿着使用Javascript提取“/ some/thing”.. 欣赏任何帮助.. Thanks!
完全不熟悉编程,所以请原谅这个愚蠢的问题。 我有这个URL http://www.blahblah.com/some/thing/blah ..如何从第三个“/”后获得字符串
现在我需要我不想从反向去了第三个“/”,即,只是“/一些/事情”后出现的字符串.. 的URL是不同的对于每个页面,但协议和主机名是相同的。 有没有一种方法可以沿着使用Javascript提取“/ some/thing”.. 欣赏任何帮助.. Thanks!
我会在这里使用一个简单的正则表达式。之前
一种方式得到的东西之后的第三个“/”只把它扔掉一切。
基本思想:
"https://stackoverflow.com/a/b/c/d/e/f".replace(/.*?\/.*?\/s.*?\//, "")
// -> "c/d/e/f"
备选#1,以减少重复:
"https://stackoverflow.com/a/b/c/d/e/f".replace(/(?:.*?\/){3}/, "")
备选#2,如果输入可包含换行符:
"https://stackoverflow.com/a/b/c/d/e/f".replace(/(?:[^\/]*\/){3}/, "")
的*?
限定符装置“不要贪心”,所以.
不会跳过/
's。这在负面字符类的情况下不需要,因为[^\/]
永远不会匹配/
。
这当然可以写在一个“较少通用的”形式,因为由于真实意图仅仅是与git摆脱URI(的/
的数量的协议/结构域的部分的仅是一个观察到的关系):
"http://foo/a/b/c/d/e/f".replace(/https?:\/\/[^\/]*\/?/i, "")
// -> "a/b/c/d/e/f"
注意最后\/
有?
后它,所以它会返回“”为“HTTP://富”和i
是这样,如果是使用一些奇怪的原因,它将匹配HTTP://
(当然是完全可选的)。
"HTTPS://foo".replace(/https?:\/\/[^\/]*\/?/i, "")
// -> ""
快乐编码!
注:以上所有的正则表达式将第三/
后提取内容,如问题陈述。他们将需要稍微修改为,其中包括第三/
的结果。另外,它不会提出X-Y问题。
这看起来像一些硬核心编码..上帝!我还有很长的路要走。也会试试这个..非常感谢你! –
我刚刚了解这些正则表达式,并发现他们可以如何准确:)谢谢你尝试过你并且工作得很好.. –
var part = string.split('/')[2]
或更复杂的:
var string = "https://stackoverflow.com/a/b/c/d/e/d"
var arr1 = string.split('/')
var arr2 = []
for (i in arr1)
{
if (arr1[i].length > 0)
arr2.push(arr1[i])
}
var part = arr2[2]
这将失败'/ a/b/c/d/e/d' – 2012-06-15 01:45:34
现在正在处理第二个片段 – odiszapc
使用string.split方法: http://www.w3schools.com/jsref/jsref_split.asp
var str = "www.blah.com/blah/blah/thing/blah.php";
var arrayOfString = str.split("/");
alert(arrayOfString[2]); //coming back to do regex/substring for you
有乐趣! :)
顺便说一句...如果你是新的网络开发,www.w3schools.com是非常好,我:)
所以您的编辑你需要做的是这样的回应:
假设上面已经:
alert(arrayOfString.slice(3).join("/"));
确定固定的,根据这里的实际需求..但就像我说的,看看http://www.w3schools.com这真的教了我一些很好的基础。拆分/切片的前
固定在评论中失败的情况下做到这一点/加入:
if (str.substring(0,1) == "/"){ str = str.substring(1);}
这将失败'/ a/b/c/d/e' – 2012-06-15 01:45:43
谢谢!它的工作..将检查链接:) –
@pst,我认为修复失败的情况下,让我知道如果你认为任何其他故障:) – Ryan
var str = 'http://www.blahblah.com/some/thing/blah'
var afterThirdSlash = str.split('/').slice(3).join('/')
split
的返回数组这是对每/
字符字符串分割。 slice
从第四个元素开始选择数组的一部分(因为数组从零开始),因为它对应于第三个斜杠后面的部分。 join
通过重新插入/
将这些元素重新组合在一起。这是你想要的吗?
如果您知道网址以'http://www.blahblah.com/'开头,为什么不使用 url.substring(24)?
我有两个UAT服务器和1个生产..老板想要通用;) –
使用拆分方法 http://stackoverflow.com/questions/96428/how-do-i-split-this-string-with-javascript –