获取字符串中所有出现的正则表达式模式

时间:2018-09-14 06:02:38

标签: javascript regex

试图引用此(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

1 个答案:

答案 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