我正在使用“多语言页面” - 我想更改语言并保留页面中的所有url参数 - 因为页面正在使用此值。
例如:
page.com/demo.asp?name=John&color=Blue
如果用户点击语言并更改我需要的语言:
1-发送新参数 -
我猜 - 最好的方法是发送另一个参数:
page.com/demo.asp?name=John&color=Blue&lang=ES
正确?
然后我使用此URL在“ES”选项上创建链接。
> create_url =
> Request.ServerVariables("URL")&"?"&Request.ServerVariables("Query_String")
> new_url = REPLACE(create_url, "&lang=", "&newlang=")
如果用户多次更改语言,则REPLACE可以避免网址上的多个“& lang”。
和HTML:
<a href="<%=new_url%>&lang=ES">ES</a>
<a href="<%=new_url%>&lang=EN">EN</a>
<a href="<%=new_url%>&lang=PT">PT</a>
<a href="<%=new_url%>&lang=FR">FR</a>
当我点击链接时 - 页面重新加载 - 所有参数仍然是valids - 我现在可以添加“LANG”。
但是...
我的问题:
如果我在网址中没有任何参数 - 并且“&amp; LANG”是第一个
我有一个BUG ......
因为我会通过这个:
page.com/demo.asp?&LANG=ES
正确的方法是
page.com/demo.asp?LANG=ES
没有“&amp;”
任何想法?
很多!!! 丹尼尔
答案 0 :(得分:0)
也许使用replace
与那种RegEx:
https://regex101.com/r/MRmZ00/3
(.*[?&]lang=)[A-Z]{2}(.*)
输出:'$1' + newlang + '$2'
如果它是您的唯一参数或您的第一个参数?lang=ES
或网址&lang=ES
中的任何其他位置,则工作。
答案 1 :(得分:0)
URI.js是一个用于处理URL的JavaScript库。它提供了一个&#34; jQuery风格的&#34; API(Fluent Interface,Method Chaining)用于读取和写入所有常规组件以及一些方便的方法,如.directory()和.authority()。
以下是示例:
URI(location.href).addQuery("lang", languageName);