使用正则表达式从url中提取参数值

这应该是非常简单的(当你知道答案的时候)。 从这个问题

我想尝试发布解决方案。 我的问题是:

如何使用JavaScript正则表达式获取给定URL的参数值?

我有:

http://www.youtube.com/watch?v=Ahg6qcgoay4

我需要:

Ahg6qcgoay4

我试过了:

http://www.youtube.com/watch?v=(w{11})

但是:我吸...


你几乎拥有它,只需要逃避特殊的正则表达式字符:

regex = /http://www.youtube.com/watch?v=([w-]{11})/;

url = 'http://www.youtube.com/watch?v=Ahg6qcgoay4';
id = url.match(regex)[1]; // id = 'Ahg6qcgoay4'

编辑:由soupagain修复正则表达式。


你为什么不把字符串拆分

网址示例

var url = "http://www.youtube.com/watch?p=DB852818BF378DAC&v=1q-k-uN73Gk"

你可以做一个分裂

var params = url.split("?")[1].split("&");

您将获得带有参数的字符串数组作为名称值对,并使用“=”作为分隔符。


v是查询参数,从技术上讲,您需要考虑ala案例:http://www.youtube.com/watch?p=DB852818BF378DAC&v=1q-k-uN73Gk

在.NET中,我会建议使用System.Web.HttpUtility.ParseQueryString

HttpUtility.ParseQueryString(url)["v"];

而且你甚至不需要检查密钥,因为如果密钥不在集合中,它将返回null。

链接地址: http://www.djcxy.com/p/28919.html

上一篇: Extract parameter value from url using regular expressions

下一篇: Does PHP have structs or enums and if not what is the best implementation for them?