JavaScript Regular Expression获取url值

时间:2014-08-27 10:05:03

标签: javascript regex

我需要一个能够满足下面要求的正则表达式:

  1. 它可以在'id ='和'&'
  2. 之间获取字符
  3. 角色'&'可能存在与否
  4. 这是一个例子,说我有两个URL如下:

    1. http://example.com?id=222&haha=555
    2. http://example.com?id=222
    3. 正则表达式可以在两个网址中获取密钥 id 的值 222

      如果有人可以帮我解决这个问题,那真非常感谢!

2 个答案:

答案 0 :(得分:0)

您可以尝试使用以下正则表达式获取ID值,无论其后跟&符号还是行结束$

id=(.*?)(?=&|$)

捕获的值存储在组索引1中。

DEMO

> var re = /id=(.*?)(?=&|$)/g;
undefined
> var str = 'http://example.com?id=222&haha=555';
undefined
> var m;
undefined
> while ((m = re.exec(str)) != null) {
...     console.log(m[1]);
... }
222

答案 1 :(得分:0)

不是regexp方式,但这也应该有效

str.split("id=")[1].split('&')[0]