0

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

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

当我得到一个网址时:

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

并调用这个函数它的 return 12

但现在我的 url 模式发生了变化。

当前的网址格式是:

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

现在我尝试更改正则表达式并替换?/和其他东西以获得期望值12

但我没有成功。我的知识regex不太好,所以帮助修改我的正则表达式以获得期望值。谢谢。

4

2 回答 2

0

你以前的正则表达式根本不关心?你试图替换的/(因为我假设你的名字var 包含ID)。
关于您的 URL 的信息如此之少无法做很多事情(您切换到获取 URL 的参数,它们根本不以相同的方式工作,您的 URL 的一般形式是什么?),但我会试一试:

/\d+$/

只会在您的 URL 末尾为您提供数字。

于 2013-04-04T08:33:16.183 回答
0

12在两个 url 字符串中获取数字:

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/

于 2013-04-04T08:36:03.177 回答