在不同条件下替换stings [url parameter]之间的值

时间:2017-12-11 07:02:52

标签: javascript jquery

我想根据某些条件修改网址值

(1)如果我当前的网址为http://example.com

然后我必须将?order = new 添加到此网址中,我编写以下代码并且它正在运行

var url=window.location.href;
       url=url+"order=new";

(2)如果我当前的网址为http://example.com/?class=1 然后我必须将& order = new 添加到此网址,我编写以下代码并且它正在运行

var url=window.location.href;
    if(url.indexOf("class=") >= 0){
        url=url+"&order=new";
    }

(3)如果我当前的网址为http://example.com/?class=1&order=new     然后我必须将& order = date 添加到此网址,我将编写以下代码并且它正在运行

 var url=window.location.href;
   if (url.indexOf("order=") >=0){
        url= url.split("order=")[0]+"order=date";
                }

(4)如果我的网址是http://example.com/?class=anyvalue&div=anyvalue&order=anyvaluehttp://example.com/?class=anyvalue&order=anyvalue&div=anyvalue。我在这里如何替换订单价值?

 http://example.com/?class=anyvalue&div=anyvalue&order=anything
 http://example.com/?class=anyvalue&order=anything&div=anyvalue

请支持

2 个答案:

答案 0 :(得分:2)

据我所知,我认为你想要这个:

var url = 'http://example.com/?class=anyvalue&order=anything&div=anyvalue';
if (url.indexOf("order=") >= 0 && url.indexOf('div=') >= 0){
    newUrl = url.replace('order=anything', 'order=456');
}

使用replace()功能。将url更改为您正在使用的内容。

答案 1 :(得分:2)

使用URL

var url = window.location.href;
var urlObj = new URL( url );

现在您可以搜索网址的参数

var order = urlObj.searchParams.get("order");
if ( !order )
{
   //url +=  url.contains( "?" ) ? "&order=new" : "?order=new";
   //contains didnt work so used includes instead
   url +=  url.includes( "?" ) ? "&order=new" : "?order=new";  
}

同样,您也可以替换值

var order = urlObj.searchParams.get("order");
if ( order )
{
   urlObj.searchParams.set("order", "123");
}
console.log( urlObj.href );

更新: 将jsfiddle添加到您的解决方案中:)) jsfiddle link