将Regex更改为在jquery中获取QueryString值

时间:2013-04-04 08:26:56

标签: jquery regex query-string

我获取查询字符串的功能是:

GetID: function(name) {
    return decodeURI((RegExp(name + '=' + '(.+?)(&|$)').exec(location.search) || [, null])[1]);
     },

当我得到一个网址时:

http://localhost/testsite/testB.aspx?ID=12

并调用此函数返回12

但现在我的网址模式正在改变。

目前的网址格式为:

  http://localhost/testsite/testB.aspx/12

现在我尝试更改正则表达式并将?替换为/以及其他内容以获得期望值12

但我没有成功。我对regex的了解并不是那么好,所以有助于修改我的正则表达式以获得欲望的价值。谢谢。

2 个答案:

答案 0 :(得分:0)

您之前的正则表达式根本不关心您?试图替换为/(因为我假设您的名称 var包含 ID )。
关于您的网址的信息很少(您切换到获取网址的参数,根本不能以相同的方式工作,您的网址的一般形式是什么?),但是我会试一试:< / p>

/\d+$/

只会告诉您网址末尾的数字。

答案 1 :(得分:0)

要在两个网址字符串中输入数字12

var myStr = "http://localhost/testsite/testB.aspx/12";

var myStr = "http://localhost/testsite/testB.aspx?ID=12";

你只需要使用1个正则表达式:

var number = parseInt(myStr.match(/[0-9]+(?!.*[0-9])/), 10);

或更简单:

var number = parseInt(myStr.match(/\d+$/), 10);

演示:http://jsfiddle.net/RPjaq/

演示:http://jsfiddle.net/RPjaq/1/