Javascript 用下拉值-onchange替换URL的一部分

Javascript 用下拉值-onchange替换URL的一部分,javascript,jquery,Javascript,Jquery,我的网站上有一个语言选择器下拉列表 更改语言后,URL将重定向到相应的站点 我当前的网址是 en/pages/home.aspx 在语言发生变化时,URL应该是 en/pages/home.aspx-关于选择英语 el/pages/home.aspx-关于选择Español py/pages/home.aspx-关于为所有语言选择Pббббббб等 <pre> $("#dd-language").on("change", function() { var countryApp

我的网站上有一个语言选择器下拉列表

更改语言后,URL将重定向到相应的站点

我当前的网址是 en/pages/home.aspx

在语言发生变化时,URL应该是

en/pages/home.aspx-关于选择英语 el/pages/home.aspx-关于选择Español py/pages/home.aspx-关于为所有语言选择Pббббббб等

<pre>
$("#dd-language").on("change", function() { 
   var countryAppend = $(this).val();
   var pathArray = window.location.pathname.split('/')[4];
   var res = pathArray.replace(pathArray,countryAppend);
   var newURL = window.location.host + "/" + pathArray;
   window.location = newURL;
});
</pre>

$(“#dd语言”)。关于(“更改”,函数(){
var countryAppend=$(this.val();
var pathArray=window.location.pathname.split('/')[4];
var res=pathArray.replace(pathArray,countryAppend);
var newURL=window.location.host+“/”+pathArray;
window.location=newURL;
});

这会在URL的末尾添加值,但我需要它来替换URL中的语言代码。

一旦路径名数组被
/
拆分,用新语言覆盖数组中的
[2]
nd项,然后再次通过
/
加入:

/mem/ca/en/pages/home.aspx
例如,对于

document.querySelector('#dd-language').addEventListener('change',function(){
    let url = window.location.href.split('/');
    url[5] = this.value;
    url = url.join('/');
    window.location = url;
});
/
拆分时,数组中的第二项将是
ca

constpatharr='/mem/ca/en/pages/home.aspx'.split('/');
pathArr[2]=“el”;

console.log(pathArr.join('/')正则表达式在这里应该很有用

范例

countryAppend=“xx”
console.log(
`https://www.example.com/mem/ca/en/pages/home.aspx`.replace(/\/.{2}\/pages/,“/”+countryAppend+“/pages”),
`https://www.example.com/mem/us/el/pages/home.aspx`.replace(/\/.{2}\/pages/,“/”+countryAppend+“/pages”),
`https://www.example.com/mem/mx/py/pages/home.aspx`.replace(/\/.{2}\/pages/,“/”+countryAppend+“/pages”)

)
下拉列表中的值是什么?请在此处添加您的完整代码,以便使用javascript简单地理解--使用语言值拆分并连接-var t=”“t=t.split(“/”)t[5]=“pa”//language code t.join(“/”)result=>”https:////www.example.com//mem//ca//pa//pages//home.aspx“您需要重定向页面,而不仅仅是更改url。谢谢,这很有效。但我们不确定用户是否总是先登陆“ca”,这是因为您缺乏信息。然后我们需要扩展正则表达式
document.querySelector('#dd-language').addEventListener('change',function(){
    let url = window.location.href.split('/');
    url[5] = this.value;
    url = url.join('/');
    window.location = url;
});
$("#dd-language").on("change", function() { 
   var countryAppend = $(this).val();
   var url = location.href;
   window.location = url.replace(/\/.{2}\/pages/,"/"+countryAppend+"/pages");
});