【问题标题】:Change Regex to Get QueryString value in jquery更改正则表达式以在 jquery 中获取 QueryString 值
【发布时间】:2013-04-04 08:26:55
【问题描述】:

我获取查询字符串的函数是:

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

当我得到一个网址时:

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

并调用此函数返回12。

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

当前的网址格式是:

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

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

但我没有成功。我对regex 的了解不是很好,所以请帮助修改我的正则表达式以获得期望值。谢谢。

【问题讨论】:

  • 然后将问题的标题更改为与正则表达式相关的内容。
  • 我需要帮助来更改正则表达式模式 bcz 我的 url 模式已更改,所以它如何重复?给定的链接只有在它有一个共同的 url 而不是特殊模式时才有效。

标签: jquery regex query-string


【解决方案1】:

在两个 url 字符串中获取数字 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/

【讨论】:

    【解决方案2】:

    您之前的正则表达式根本不关心您尝试用/ 替换的?(因为我假设您的name 变量包含ID)。
    关于你的 URL 的信息太少了(你切换到获取 URL 的参数,它们根本不以相同的方式工作,你的 URL 的一般形式是什么?),但我会试一试:

    /\d+$/
    

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

    【讨论】:

      猜你喜欢
      • 2015-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-11
      相关资源
      最近更新 更多