经典ASP:如何重新加载页面,保留url参数并添加一个新的?

时间:2018-03-21 03:28:27

标签: javascript html asp-classic

我正在使用“多语言页面” - 我想更改语言并保留页面中的所有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;”

任何想法?

很多!!! 丹尼尔

2 个答案:

答案 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()。

Here is link

以下是示例:

URI(location.href).addQuery("lang", languageName);