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."。(进入公司名称 1 变量)。同样,我想提取"FB"(进入companySymbol2 var)和"Facebook Inc."。(进入公司名称 2 var) fro stockString2.

stockString1,stockString2的格式将保证与源保持一致 - 因此您可以假设可能存在其他符号和名称(例如GOOG/Google Inc,MSFT/Microsoft Corp.等)

非常感谢任何帮助。

你可以

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);

最新更新