正则表达式获取方括号之间的字符串和数字 - javascript

时间:2013-08-16 00:47:55

标签: javascript regex

我需要从这个字符串中获取数字(1)和字符串(开始),这样我可以增加数字,下面的正则表达式可以工作,但仍然有输出周围的[] - 任何人都有一个正则表达式将删除[]也是?

var $name = 'event[1][start]';
var parts = $name.match(/\[(.*?)\]/g);
console.log(parts[0] + ' - ' + parts[1]);
// I wish to do something like this eventually...
// var $newName = 'event[' + ++parts[0] + '][' + parts[1] + ']';

非常感谢

3 个答案:

答案 0 :(得分:0)

如果字符串始终采用something[part0][part1]格式,请使用:

var parts = $name.match(/.*?\[(.*?)\]\[(.*?)\]/);
console.log(parts[1] + ' - ' + parts[2]);

当您使用global标志时,您只获得整个正则表达式的匹配数组,而不是捕获组。但在您的情况下,您似乎不需要全局,您只想捕获两个特定元素,因此请使用两个捕获组。

请注意,捕获组编号从1开始 - parts[0]是整个regep的匹配。

答案 1 :(得分:0)

就这样做。

var $name = 'event[1][start]';
var parts = $name.match(/\w+/g);
console.log(parts[1] + ' - ' + parts[2]);

答案 2 :(得分:0)

您可以这样做以提取捕获组:

var $name = 'event[1][start]';
var pattern=new RegExp("\\[(.*?)\\]","g");
var parts = pattern.exec($name);
while (parts!=null) {
    console.log(parts[1]);
    parts = pattern.exec($name);
}