Javascript RegEx:提取网址的一部分

时间:2012-10-19 07:57:34

标签: javascript regex

        if ((urlStr.indexOf('t='))!=-1)
        {
            var pat = /t=(\d+)m(\d+)s/;
            pat.exec(urlStr);
            alert (RegExp.$1);
            alert (RegExp.$2);

        }

案例1:http://localhost/proc1/commit.php&t=1m13s 返回1和13 - >好

案例2:http://localhost/proc1/commit.php&t=13s 返回空白和空白 - >不行 预期结果0和13

如何更改正则表达式?

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

var pat = /t=(?:(\d+)m)?(\d+)s/;

这允许第一部分,包括m是可选的。现在在第二种情况下,$1应为空字符串。

(?:确保您没有获得包含m的其他捕获字符串。

这也可以,并且几乎一样:

var pat = /t=(\d*?)m?(\d+)s/;

这里我们只允许第一个数字字符串为空,m为可选数字。只需确保在?*使用1不重复 - 否则m将与第一次重复匹配,3将被排除,并且{{1}}将与第二次重复匹配。