鉴于JavaScript代码
var pattern = /abc(d)e/;
var somestring = 'abcde';
var index = somestring.match(pattern);
我想知道组匹配的起始索引,就像Java的Matcher.start()方法一样。
答案 0 :(得分:2)
您可以通过捕获该捕获组之前的所有其他内容来获取某些捕获组的偏移量:
var pattern = /(^.*abc)(d)e/;
var somestring = 'abcde';
var match = somestring.match(pattern);
var index = match[1].length; // this is the offset of `d` in the string
或者,没有捕获主题字符串的开头:
var pattern = /(abc)(d)e/;
var somestring = 'abcde';
var match = somestring.match(pattern);
var index = match[1].length + match.index; // this is the offset of `d` in the string
match.index
是字符串中匹配项的起始索引。