我需要一个字符串并从中获取一些值。我有这个字符串:
'tab/tab2/tab3'
'/ tab3'是可选的,因此此字符串也应该起作用:
'tab/tab2'
我目前正在尝试大多数情况下可以使用的方法:
'tab/tab2/tab3'.match(new RegExp('^tab/([%a-zA-Z0-9\-\_\s,]+)(/([%a-zA-Z0-9-_s,]+)?)$'));
这将返回:
["tab/tab2/tab3", "tab2", "/tab3", "tab3"]
但我要它回来
["tab/tab2/tab3", "tab2", "tab3"]
因此,我需要摆脱第三个索引项(“ / tab3”),并使它仅与'tab / tab2'字符串一起使用。
更复杂的是,我只能控制最后一个分组中的
/([%a-zA-Z0-9-_s,]+)?
部分,这意味着它将始终包裹在一个分组中。 最佳答案
您不需要正则表达式,只需使用split()
方法:
var str = 'tab/tab2/tab3';
var arr = str.split('/');
console.log(arr[0]); //tab
console.log(arr[1]); //tab2
jsfiddle