jquery结合url参数更改和字符串替换
我想重定向用户,但首先我需要通过更改字符串来操作url: 我是这样做的:jquery结合url参数更改和字符串替换,jquery,string,url,redirect,parameters,Jquery,String,Url,Redirect,Parameters,我想重定向用户,但首先我需要通过更改字符串来操作url: 我是这样做的: var url = location.href; url=url.replace("featured", "list"); window.location.href=url; // location.search = jQuery.query.set("page", 1); // 但在重定向用户之前,我还想将url的get参数更改为特定值。 我在这里读到,应该这样做: var url = loc
var url = location.href;
url=url.replace("featured", "list");
window.location.href=url;
//
location.search = jQuery.query.set("page", 1);
//
但在重定向用户之前,我还想将url的get参数更改为特定值。
我在这里读到,应该这样做:
var url = location.href;
url=url.replace("featured", "list");
window.location.href=url;
//
location.search = jQuery.query.set("page", 1);
//
我只是不知道如何在重定向之前将字符串和参数操作结合起来,因为位置搜索没有考虑我的字符串替换,而且字符串替换也没有考虑location.search
基本上,如果用户在这里:
我希望他被重定向到:
当然,不管他的页码是多少
附言:我不是想强迫用户做任何事情。我的观点是使用数据过滤系统,如果它被激活,用户应该处于列表模式,从第1页开始。就这些
任何帮助都将不胜感激 您可以运行GUP函数。GUP函数获取url中的特定参数。在您的案例中,“页面”和“模型”
function gup( name ){
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if( results == null ){
return "";
}else{
return results[1];
}
}
//this function checks the value of the 'page' and 'mode' parameters
function checkURL(){
page = gup('page');
mode = gup('mode');
//if the page parameter is 1 and the mode parameter is 'featured' then redirect
if(page == 3 && mode == 'featured){
window.location.replace('http://www.mysite.com/index.php?page=1&mode=list');
}
}
希望这能指引你正确的方向。谢谢你,代码29。
这是正确的方向,即使结局不是我所需要的
这是工作脚本:
var regexS = "[\\?&]page=([^&#]*)";
var regex = new RegExp( regexS );
var url = location.href;
var results = regex.exec( url );
if( results != null )
{
url=url.replace("featured", "list");
url=url.replace("page="+results[1], "page=1");
}
window.location.href=url;
这就像一个符咒。为什么不再次使用
replace()
?因为,正如我所说的:“当然,不管他在哪一个页码。”我如何替换一个我还不知道的值?“特色”可以很容易地替换为“列表”,但页面值可能是无限的,无论值是多少,都应该替换为1。那么,除了这个数字之外,文本的每一部分都取一个怎么样?因为URL中还有其他get变量。我的示例尽可能简单地解释了这种情况,但事实上,url可以尽可能复杂。我唯一可以依赖的是,我可能有一个“featured”值(如果是这种情况,我会更改它),并且我总是有一个页码参数(不管它是什么,它的值应该更改为1)。url的其余部分是不可预测的,应该保持不变。然后拆分字符串?首先基于?
所以第二个字符串是您的参数列表,然后基于&
拆分参数列表并对其进行过滤,直到找到一个.包含()
的“页面”或其他内容,然后对其进行操作,并重新构建您的URL。对不起,我帮不上什么忙,我知道这个建议看起来非常迂回和烦人。最终的url是未知的,但你认为它是。条件是不相关的,因为我无论如何都要应用更改。假设url可以是任何形式,它是不可预测的,但它总是有一个模式和一个页码。我需要输出完全相同的url(无论它是什么),除了“列表”模式和第1页。您的脚本无法解决此问题。