试图引用此(Return positions of a regex match() in Javascript?)来提取特定字符串中匹配项的开始和结束位置,但不知何故它仅返回1个匹配项。不知道我在做什么错。
var str = "abc <span djsodjs> ajsodjoasd <spandskds>";
var patt = /.*(<span.*>).*/igm;
while (match = patt.exec(str)) {
console.log(match.index + ' ' + patt.lastIndex);
}
返回
0 41
预期:
0 41
4 17
30 40
答案 0 :(得分:0)
如果您只想为标签建立索引,那么您应该只在正则表达式中匹配该标签,这样您就可以找到特定的标签值。
尝试以下代码:
var str = "abc <span djsodjs> ajsodjoasd <spandskds>";
var patt = /(\<span)([^\<]*)(\>)/igm;
while (match = patt.exec(str)) {
console.log(match.index + ' ' + patt.lastIndex);
}
此正则表达式将返回两个值
/(\<span)([^\<]*)(\>)/igm