Javascript 如何读取在一个字符串中多次出现的单词的位置?

Javascript 如何读取在一个字符串中多次出现的单词的位置?,javascript,jquery,html,json,regex,Javascript,Jquery,Html,Json,Regex,如果这是我的文本: <textarea readonly id="rightbox" class="rightbox"> From: Emailadress Sender: Emailadress Reply-To: Emailadress </textarea> 我只得到1的位置。电子邮件地址。 是否可以获取所有位置并将它们写入一个数组?首先将右框更改为id而不是左框,第二次使用而不是 并将为您提供第一个匹配字符串(检查EmailAddresse) var str=

如果这是我的文本:

<textarea readonly id="rightbox" class="rightbox">
From: Emailadress
Sender: Emailadress
Reply-To: Emailadress
</textarea>
我只得到1的位置。电子邮件地址。
是否可以获取所有位置并将它们写入一个数组?

首先将
右框
更改为
id
而不是
左框
,第二次使用而不是

并将为您提供第一个匹配字符串(检查
EmailAddresse

var str=document.getElementById('rightbox').value;
log('emailAddress的位置:'+str.indexOf('{emailAddresse}'));
console.log('emailAddress的位置:'+str.indexOf('emailAddress'));
//要获取所有出现的电子邮件地址
var regexp=/emailaddress/g;
变量键,位置=[];
while((key=regexp.exec(str))!=null){
位置。按下(键。索引);
}
控制台日志(位置)

发件人:电子邮件地址
发件人:电子邮件地址
回复:EmailAddress

电子邮件地址!==电子邮件地址
'leftbox'!='rightbox'
但我认为这只是问题中的输入错误:-)下面的问题已经回答了。请参见
indexOf
从index
获取第二个参数
,您猜到了,该参数允许您指定从哪个位置开始搜索。所以你可以很容易地把它放入一个循环,只要它不返回-1。我想问题是:你如何得到所有的位置。但那是非常糟糕的措辞。
var str = document.getElementById('rightbox').innerHTML;
var pos = str.indexOf('{Emailadress}');
 var str = "I learned to play the Ukulele in Lebanen with neel."
 var regex = /ne/gi, result, indices = [];
 while ( (result = regex.exec(str)) ) {
    indices.push(result.index);
 }
Answers:indices= 6,37,46