我正在使用"多语言页面" - 我想更改语言并保留页面中的所有 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 的工作原理是避免在用户多次更改语言时在 url 上出现多个"&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>
当我单击链接时 - 页面重新加载 - 所有参数仍然有效 - 我现在可以添加"LANG"。
但。。。
我的问题:
如果我在 URL 中没有一个参数 - 并且"&LANG"是第一个
我有一个错误...
因为我会通过这个:
page.com/demo.asp?&LANG=ES
正确的方法是
page.com/demo.asp?LANG=ES
没有"&">
知道吗?
很多!! 丹尼尔
也许将replace
与这种正则表达式一起使用:
https://regex101.com/r/MRmZ00/3
(.*[?&]lang=)[A-Z]{2}(.*)
输出 :'$1' + newlang + '$2'
如果它是您唯一的参数或您的第一个参数?lang=ES
或 url&lang=ES
中的其他任何地方,则可以工作。
URI.js是一个用于处理URL的JavaScript库。它提供了一个"jQuery风格"的API(Fluent Interface,Method Chaining)来读取和写入所有常规组件以及许多方便的方法,如.directory()和.authority()。
这是链接
这是示例:
URI(location.href).addQuery("lang", languageName);