从Url中提取单词

时间:2011-05-17 21:27:36

标签: javascript jquery

我有一个搜索功能,想在搜索输入中显示搜索词。

我的网址是:search-1.html?keyword=XXXXXX

我如何得到它,并将其显示在输入中?

提前谢谢。

4 个答案:

答案 0 :(得分:3)

使用此: http://ajaxcssblog.com/jquery/url-read-get-variables/

好运!

哦,然后您可以使用以下内容在输入字段中显示其值:

$("#inputId").val($.url.param("keyword"));

答案 1 :(得分:2)

如果网址中只有一个key=value,您可以使用这样的简单正则表达式:

var theValueYouWant = window.location.href.match(/keyword=(.+)/)[1]

并设置像这样的输入值

$('input').val(theValueYouWant)

如果你想更彻底地解析GET字符串,这个函数应该这样做......

gets = {};
$.each(location.search.replace(/^\?/,'').split('&'),function(k,v){
    bits = v.split('=');
    gets[bits[0]] = bits[1];
});

答案 2 :(得分:1)

正则表达式解决方案:

var S = window.location.search; // "?keyword=..." etc.
var T = S.match(/^\?(?:[^\b]*&+)?keyword=([^&]*)/);
if (T)
   T = T[1]
else
   T = "no keywords found"

如果为“keyword”(e.x. ?keyword=XXX&keyword=YYY)指定了多个值,则正则表达式只会找到第一个值(e.x. XXX)。即使查询字符串中还有其他变量,此正则表达式也能正常工作。

答案 3 :(得分:0)

无jQuery解决方案:

<script type="text/javascript">
var $_GET=[],pairs=location.href.toString().substring(location.href.toString().indexOf("?")+1).split("&");for(key in pairs){pos=pairs[key].indexOf("=");$_GET[pairs[key].substring(0,pos)]=decodeURIComponent(pairs[key].substring(pos+1).replace(/\+/g," "))};

// Now just access with $_GET
// example...
keyword = $_GET["keyword"];
</script>