[英]How to extract substring from a String with different values in Javascript?
我有一段包含一些電子郵件、電話和 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*
請用 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);
}
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);
如果格式沒有太大變化,有一個簡單的解決方案。
讓我們用正則表達式分隔“單詞”
const email = `*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 matches = email.match(/[^ :\n]*/g);
console.log(matches);
現在我們可以過濾要求出現“@”
const results = matches.filter( e => e.indexOf('@') !== -1 );
console.log(results);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.