Javascript 匹配不总是在一起的特定URL参数
所以,我有一个小应用程序,可以用不同的URL参数进行动态重定向。我的PHP脚本上的数组建立了一个初始顺序,如下所示:Javascript 匹配不总是在一起的特定URL参数,javascript,php,regex,Javascript,Php,Regex,所以,我有一个小应用程序,可以用不同的URL参数进行动态重定向。我的PHP脚本上的数组建立了一个初始顺序,如下所示: $request = array( 'extension' => 'rb', 'type' => 'blob', 'size' => '234900', 'name' => 'sdtt', 'state' => '1', 'source' => 'exa
$request = array(
'extension' => 'rb',
'type' => 'blob',
'size' => '234900',
'name' => 'sdtt',
'state' => '1',
'source' => 'example.com',
)
创建URL:
?extension=rb&type=blob&size=234900&name=sdtt&state=1&source=example.com
但是动态部分可以向数组添加或删除键。可以添加的一个键是expires
,它将位于URL的任何位置,因为还可以添加其他参数,这意味着我不能保证它将始终位于source
之后,或者这将是最后一个URL参数
我的目标是将type=anything
和expires=anything
(例如)作为目标,将它们保存到一个变量中并从URL中删除(可能使用pushState()
,以避免重新加载页面)。基本上:
extension=rb&type=blob&
size=234900&name=sdtt&state=1&source=example.com&expires=1507755807
我的尝试是:
(type=[^&]+)(expires=[^&]+)
但是,如果存在,expires
参数,则只会得到该参数,如果该参数不存在,则它将与任何内容都不匹配。Add |(pipe)for'or'
下面是为“或”添加|(管道)的示例
下面是一个管道字符的示例。。。真不敢相信。“我现在觉得自己好笨啊哈哈,谢谢你,@Himan。一个烟斗角色。。。真不敢相信。“我现在觉得自己好笨,哈哈,谢谢你,”希曼说。
(type=[^&]+)|(expires=[^&]+)