2017-01-03 76 views
-3

我有兩個字符串,我想從中提取特定的字符串。JavaScript從字符串中提取值 - 股票和公司名稱

var companyString1; 
var companyName1; 

var companyString2; 
var companyName2; 

var stockString1 = "STOCKDETAILS:TWEETS:FB:Facebook Inc."; 

var stockString2 = "I have returned -- Facebook Inc. (FB) -- stock back."; 

companySymbol1 = ? //would like this to be "FB" 
companyName1 = ? //would like this to be "Facebook Inc." 
companySymbol2 = ? //would like this to be "FB" 
companyName2 = ? //would like this to be "Facebook Inc." 

什麼是正則表達式我可以申請stockSTring1提取「FB」(到companySymbol1 var)和「Facebook Inc.」 (into companyName1 var)。同樣,我想提取「FB」(into companySymbol2 var)和「Facebook Inc.」 (into companyName2 var)fro stockString2。

stockString1的格式,stockString2將保證是一致的來回源 - 所以你可以假設有可能是其他的標記及名稱(例如GOOG /谷歌公司,MSFT /微軟等)

真正感謝任何幫助。

+0

所以,你還沒有嘗試過什麼? – trincot

回答

1

您可以用split做到這一點,一個正則表達式只是砍掉在第二種情況下,收盤)

function getStock(s) { 
 
    var parts = s.split(/\)? -- /); 
 
    if (parts.length < 2) { // other format 
 
     return s.split(':').slice(2, 4); 
 
    } 
 
    return parts[1].split(' (').reverse(); 
 
} 
 

 
var stockString1 = "STOCKDETAILS:TWEETS:FB:Facebook Inc."; 
 
var stockString2 = "I have returned -- Facebook Inc. (FB) -- stock back."; 
 

 
var [companySymbol1, companyName1] = getStock(stockString1); 
 
var [companySymbol2, companyName2] = getStock(stockString2); 
 

 
console.log(companySymbol1, companyName1); 
 
console.log(companySymbol2, companyName2);