使用javascript和regex获取querystring

get querystring using javascript and regex

本文关键字:获取 querystring regex javascript 使用      更新时间:2023-09-26

我的url如下:

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>

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

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

http://jsfiddle.net/7WcMc/

这应该有效:

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

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

Javascript match函数在成功的情况下返回一个匹配数组,如果没有找到匹配,则返回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>