【问题标题】:get querystring using javascript and regex使用 javascript 和正则表达式获取查询字符串
【发布时间】:2012-02-26 02:09:16
【问题描述】:

我的网址是这样的:

http://mysite.com/results.aspx?s=bcs&k=“医院”或“办公室”或“设施”

我想抓取 'k=' 之后的所有内容,不包括 'k=' 本身..

这个正则表达式部分工作..但它用 k 抓取所有内容两次..

    <script type="text/javascript">
document.write('<p>Showing Results for all' + 
window.location.href.match(/[?&]k=([^&#]+)/) || [] + '</p>');
</script>

【问题讨论】:

标签: javascript jquery regex url query-string


【解决方案1】:

match 正在返回两个元素。第一个是整个正则表达式的匹配。第二个元素是捕获组(() 中的内容)。这就是你想要的,数组中的第二个元素。

<script type="text/javascript">
    var result = window.location.href.match(/[?&]k=([^&#]+)/);

    var word = "";

    if(result) word = result[1];
</script>

http://jsfiddle.net/7WcMc/

【讨论】:

  • 我如何抓住它?使用javascript?
  • 更新了更多细节的答案。
【解决方案2】:

这应该可行:

var match = location.href.match(/\&k\=(.+)/)[1];

http://jsfiddle.net/elclanrs/2aPCh/1/

【讨论】:

    【解决方案3】:

    Javascript 匹配函数在成功的情况下返回一个匹配数组,如果没有找到匹配则返回 null。

    在您的情况下,第一个匹配是匹配的整个字符串,第二个是对 ([^]+) 的反向引用

    这样可能更好:

    <script type="text/javascript">
        var m = window.location.href.match(/[?&]k=([^&#]+)/);
        document.write('<p>Showing Results for all' + ((m != null) ? m[1] : '') ++ '</p>');
    </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-24
      相关资源
      最近更新 更多