如何从Javascript中具有不同值的字符串中提取子字符串?

Age*_*t K 2 javascript dom data-extraction

我有一段包含一些电子邮件、电话和 URL 的列表。

我想从该单个字符串中提取所有 (600) 电子邮件、电话和 URL。

我试图用 Javascript 中的 substr 来做到这一点,但我可能遗漏了某个地方。

这是我的示例数据的示例:

*Email:info@abc.com
Url: www.example.com
Tel: +123-456-789
Email:info@abc.com
Url: www.example.com
Tel: +123-456-789
Email:info@abc.com
Url: www.example.com
Tel: +123-456-789
Email:info@abc.com
Url: www.example.com
Tel: +123-456-789*
Run Code Online (Sandbox Code Playgroud)

请用 JavaScript 指导我。

var myEmail = [];
var ol = myS.substr((myS.indexOf("Email:")+1),(myS.indexOf('Url:')-2));
for(let i=0;i<600;i++){
   var ml = myS.substr((myS.indexOf(ol)+1),(myS.indexOf('Url:')-2));
console.log(ml);

}
Run Code Online (Sandbox Code Playgroud)

sec*_*can 5

const data = `*Email:info@abc.com
Url: www.example.com
Tel: +123-456-789
Email:info@abc.com
Url: www.example.com
Tel: +123-456-789
Email:info@abc.com
Url: www.example.com
Tel: +123-456-789
Email:info@abc.com
Url: www.example.com
Tel: +123-456-789*`;

const reEmails = /^\*?Email: ?(.*@.*\..*)\*?$/gm;
const reTels = /^\*?Tel: ?(\+?\d*-?\d*-?\d*)\*?$/gm
const reUrls = /^\*?Url: ?(www\..*\..*)\*?$/gm

const emails = data.match(reEmails).map(m => m.replace(reEmails, '$1'));
const tels = data.match(reTels).map(m => m.replace(reTels, '$1'));
const urls = data.match(reUrls).map(m => m.replace(reUrls, '$1'));

console.log('emails:', emails);
console.log('tels:', tels);
console.log('urls:', urls);
Run Code Online (Sandbox Code Playgroud)