我会得到我的网址:
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>
答案 0 :(得分:1)
match
正在返回两个元素。第一个是整个正则表达式的匹配。第二个元素是捕获组(()
内)。这就是你想要的,数组中的第二个元素。
<script type="text/javascript">
var result = window.location.href.match(/[?&]k=([^&#]+)/);
var word = "";
if(result) word = result[1];
</script>
答案 1 :(得分:0)
答案 2 :(得分:0)
Javascript match函数在成功时返回匹配数组,如果没有找到匹配则返回null。
在你的情况下,第一场比赛是匹配的整个字符串,第二场是([^&amp;#] +)的反向引用
以这种方式可能更好:
<script type="text/javascript">
var m = window.location.href.match(/[?&]k=([^&#]+)/);
document.write('<p>Showing Results for all' + ((m != null) ? m[1] : '') ++ '</p>');
</script>