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