检查是否已设置GET变量

时间:2012-08-28 14:20:35

标签: javascript

我有这个代码添加?prside=5。但是,如果您更改此内容并且网址已为&prside=5,则只会再次附加该网址(&prside=5&prside=40)。

如果它已经存在,我如何更新它而不是附加它?

<select name="prside" onchange="document.location.href = document.location.href + \'&prside=\' + this.value">
    <option>Annoncer pr. side</option>
    <option value="5">5</option>
    <option value="10">10</option>
    <option value="20">20</option>
    <option value="40">40</option>
</select>

编辑: 真实URL中还有其他GET变量。上面的脚本确实有效,但是多个&amp; prside

并不是很漂亮

1 个答案:

答案 0 :(得分:1)

您可以使用字符串indexOf方法检查是否存在prside,然后您可以使用正则表达式替换值(如果存在):

href = document.location.href;
if(!~href.indexOf('prside'))
    document.location.href = href + 'prside=' + this.value;
else
    document.location.href = href.replace(/(prside=)\d+/, '$1' + this.value)

如果你想直接把它放到HTML

中,这是一个单行
document.location.href = !~document.location.href.indexOf('prside') ? document.location.href + 'prside=' + this.value : document.location.href.replace(/(prside=)\d+/, '$1' + this.value);