我有一个url字符串,我想从中捕获/ delimiter之间的所有单词:
所以给出了这个网址:
"/way/items/add_items/sell_items":
我想抓拍:
way
items
sell_items
add_items
如果我这样做:
'/way/items/sell_items/add_items'.match(/(\w+)/g)
=> [ 'way', 'items', 'sell_items', 'add_items' ]
它会给我一个阵列但没有捕获组,为什么我这样做呢:
new RegExp(/(\w+)/g).exec("/way/items/sell_items/add_items")
=> [ 'way', 'way', index: 1, input: '/way/items/sell_items/add_items' ]
但这只是捕捉方式..我希望它捕捉所有四个单词。
我该怎么做?
由于
答案 0 :(得分:9)
你应该写
var parts = url.split("/");
global
标志用于replace
方法
此外,它使exec
方法从最后一个结果开始(使用RegExp
的{{1}}属性)
答案 1 :(得分:3)
如果由于某种原因需要一个正确的Regex,那么使用它,否则使用split()函数。
<强>代码:强>
var re = new RegExp(/\w+?(?=\/|$)/gi); // added |$
alert(re);
var text = '/way/items/add_items/sell_items';
var aRes = text.match(re);
结果: [方式,项目,add_items,sell_items];