是否有任何方法可以返回拆分操作中被丢弃的部分
Is there any way to return the thrown away part of the split operation?
我正在构建一个基本的应用程序,它允许用户在使用Javascript中的#参数的会话之间共享或继续他们的搜索状态(我将其构建为SPA,因此GET参数不一定总是有效的)。
在我的应用程序中,我可以有一个URI,比如:/items#rarity=rare,common,uncommon&cost=ascending&category=primary
如果我想检查在react组件中设置成本过滤器的状态,我想提取asecnding
,然后选中升序复选框来设置页面加载的状态。
如果我将Javascript的split函数与regex结合使用,我可以通过以下操作捕获所有关于成本的信息:
var hash = window.location.hash;
hash = hash.split(/cost.*&/);
现在,这显然将返回一个分为两部分的数组,第一部分是/items#rarity=rare,common,uncommon&
和category=primary
,因为split函数将根据所提供的条件进行拆分,在我的情况下,该条件与regex中的字符串匹配。
有没有什么方法可以从split函数中捕获提取的字符串,这样我就可以解析成本字符串?
不可能。哦,有!只需将正则表达式封装在捕获组中即可。
var s = '/items#rarity=rare,common,uncommon&cost=ascending&category=primary';
r = s.split(/(cost.*&)/);
console.log(r[0]);
console.log(r[1]); //there is the "thrown" part
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("&")));
http://codepen.io/nagasai/pen/RRyLmA
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- 如何确定javascript已经完成了某些操作.ios上的
- 防止Alt+Shift默认操作或检测多种操作系统语言的Javascript
- 从JavaScript访问struts操作中的属性
- 拆分单词jquery
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- fluxxor向一个flux实例添加一组以上的操作
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 操作放置在画布上的元素之间的连接
- 使用“+="操作人员
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- Jquery未定义函数正在停止其他操作
- 如何操作iframe之外的元素
- 将字符串拆分为数组时出现JavaScript错误
- 在JavaScript中拆分日期字符串的更好方法是什么
- javascript对象操作:根据指定条件选择属性
- 这个字符串拆分操作中的“filter”调用是什么
- 执行与正则表达式拆分相反的操作
- 是否有任何方法可以返回拆分操作中被丢弃的部分