javascript计数匹配字符串长度
Posted
技术标签:
【中文标题】javascript计数匹配字符串长度【英文标题】:javascript count match string length 【发布时间】:2017-06-12 21:18:31 【问题描述】:我有这个例子: https://jsfiddle.net/xqdwL914/1/
<div id="test">bar <i>def</i>ghij<br>bar <i>def</i>ghij</div>
我想像这样在多次出现中找到“条形”索引和长度:
var node = document.getElementById('test');
var text = node.textContent;
var re = /bar/g;
while ((match = re.exec(text)) != null)
alert("match found at: " + match.index+ " length: " +match.length);
输出:
在以下位置找到匹配项:0 长度:1
匹配发现于:11 长度:1
为什么长度是“1”它应该是“3”作为单词“bar”的三个字符 以及我如何获得每个匹配词条的最后一个索引????
【问题讨论】:
那么我如何计算每次迭代?? 当我这样使用它时: alert("match found at: " + match.index+ " length: " +text.match(re).length);它无限循环.. 【参考方案1】:返回的match
是一个数组。我了解到您正在寻找第一个位置 (match[0]
) 的 match
字符串的长度:
while ((match = re.exec(text)) != null)
alert("match found at: " + match.index+ " length: " +match[0].length);
【讨论】:
【参考方案2】:来自MDN
如果匹配成功,则 exec() 方法返回一个数组并更新正则表达式对象的属性。返回的数组将匹配的文本作为第一项
var text = 'bar <i>def</i>ghij<br>bar <i>def</i>ghij';
var re = /bar/g;
while ((match = re.exec(text)) != null)
console.log("match found at: " + match.index+ " length: " +match[0].length);
输出:
match found at: 0 length: 3
match found at: 22 length: 3
【讨论】:
以上是关于javascript计数匹配字符串长度的主要内容,如果未能解决你的问题,请参考以下文章