【问题标题】:Javascript extracting values from strings -- stock and company namesJavascript 从字符串中提取值——股票和公司名称
【发布时间】:2017-01-03 08:12:07
【问题描述】:

我有两个要从中提取特定字符串的字符串。

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.”。 (进入 companyName1 变量)。同样,我想提取“FB”(到 companySymbol2 var)和“Facebook Inc.”。 (进入 companyName2 var)来自 stockString2。

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

非常感谢任何帮助。

【问题讨论】:

  • 所以你什么都没试过?

标签: javascript regex string


【解决方案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);

【讨论】:

    猜你喜欢
    • 2020-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-04
    • 1970-01-01
    相关资源
    最近更新 更多