Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有办法返回拆分操作中被丢弃的部分?_Javascript - Fatal编程技术网

Javascript 有没有办法返回拆分操作中被丢弃的部分?

Javascript 有没有办法返回拆分操作中被丢弃的部分?,javascript,Javascript,我正在构建一个基本的应用程序,它允许用户使用Javascript中的#参数在会话之间共享或继续他们的搜索状态(我正在构建一个SPA,因此GET参数不一定总是有效的) 在我的应用程序中,我可以有一个URI,比如:/items#稀有=稀有、普通、不寻常&成本=升序&类别=主要 如果我想检查在react组件中设置成本过滤器的状态,我想提取asecnding,然后选中升序复选框以设置页面加载状态 如果我将Javascript的拆分函数与正则表达式结合使用,我可以通过执行以下操作来捕获有关成本的所有信息:

我正在构建一个基本的应用程序,它允许用户使用Javascript中的#参数在会话之间共享或继续他们的搜索状态(我正在构建一个SPA,因此GET参数不一定总是有效的)

在我的应用程序中,我可以有一个URI,比如:
/items#稀有=稀有、普通、不寻常&成本=升序&类别=主要

如果我想检查在react组件中设置成本过滤器的状态,我想提取
asecnding
,然后选中升序复选框以设置页面加载状态

如果我将Javascript的拆分函数与正则表达式结合使用,我可以通过执行以下操作来捕获有关成本的所有信息:

var hash = window.location.hash;
hash = hash.split(/cost.*&/);
现在,这显然将返回一个分为两部分的数组,第一部分是
/items#rarity=ra稀、common、ungeneral&
category=primary
,因为split函数将根据提供的条件进行分割,在我的例子中,该条件与regex中的字符串相匹配

是否有任何方法可以从split函数中捕获提取的字符串,然后解析成本字符串?

没有方法。哦,有!只需将正则表达式包装在捕获组中

var s='/items#稀有性=稀有、普通、不常见&成本=升序&类别=初级';
r=s.split(/(成本。*&)/);
console.log(r[0]);
console.log(r[1])//还有“抛出”部分
console.log(r[2])不可能。哦,有!只需将正则表达式包装在捕获组中

var s='/items#稀有性=稀有、普通、不常见&成本=升序&类别=初级';
r=s.split(/(成本。*&)/);
console.log(r[0]);
console.log(r[1])//还有“抛出”部分

console.log(r[2])要获得预期结果,请使用下面的

var x="/items#rarity=rare,common,uncommon&cost=ascending&category=primary";

console.log(x.split('cost=')[1].substring(0,x.split('cost=')[1].indexOf("&")));

要达到预期效果,请使用下面的

var x="/items#rarity=rare,common,uncommon&cost=ascending&category=primary";

console.log(x.split('cost=')[1].substring(0,x.split('cost=')[1].indexOf("&")));

否,不要将
split
与任意用途的正则表达式一起使用。只需正确解析参数结构。希望这对您有用不,不要将
split
用于任意用途的正则表达式。只需正确解析参数结构。希望这对你有用我只是做了这个作为最后的手段…更多的是一个“这是不是可能的问题”…如果能抓住删除的部分就好了:)@Alex请看编辑!哦,太酷了!!谢谢@nicaelI,我们刚刚做了这件事作为最后的手段……更多的是一个“这是不是可能的问题”……如果能抓住被删除的部分就好了:)@Alex请看编辑!哦,太酷了!!谢谢你@nicael