【发布时间】:2011-10-11 01:39:36
【问题描述】:
这里很奇怪(或者可能不是),我正在尝试通过 Javascript 正则表达式检索两个捕获组,第一组:一个或多个数字 (0-9),第二组:一个或多个单词字符或连字符(A-Z, 0-9, -) 但由于某种原因,我永远无法检索后一组。
请注意:我特意加入了替换 (|) 字符,因为我希望可能收到其中一个)
这是我正在使用的代码:
var subject = '#/34/test-data'
var myregexp = /#\/(\d+)|\/([\w-]+)/;
var match = myregexp.exec(subject);
if (match != null && match.length > 1) {
console.log(match[1]); // returns '34' successfully
console.log(match[2]); // undefined? should return 'test-data'
}
有趣的是,Regex Buddy 告诉我我确实有两个捕获组,并且实际上在测试短语中正确地突出显示了它们。
这是我的 JavaScript 语法中的问题吗?
【问题讨论】:
标签: javascript regex capturing-group