在JavaScript中通过两个不同短语界定的大字符串的字符串在内部提取



我已经在网络上搜索了一种方法,到目前为止,我只遇到了示例,这些示例实际上不符合我正在寻找的标准...

我想提取在"接收到:传输的信息"之间出现的字符串

通常,字符串将显示为:

2014-01-23 13:26:13-吉姆超人从: jim.superman@superheroes.com

请bla bla bla,我们需要一个新的超级英雄

经理的超级管理人测试BLA BLA [WAWA]

传输的信息

听起来像一个简单的子字符串:

 var str = ...; // Where ever it came from
 str = str.substring(
         str.indexOf("received from:") + "received from:".length, 
         str.lastIndexOf("The information transmitted"));
 console.log(str); // Check the results

请注意如何将长度添加到"收到:"。因此,这是您的输出中未包含的文本。

正则态度如何?

str = "2014-01-23 13:26:13 - Jim Superman received from: JIM.superman@superheroes.com..."  
/(?: received from: (.*?) The information transmitted)/.exec(str)[1]

您可以这样做:

var text = "...";
var fromText = "received from:";
var endText = "The information transmitted";
var extractedText = text.substring(text.indexOf(fromText) + fromText.length,
                    text.indexOf(endText));

您也可以做到这一点:

var extractedText = /breceived from:(.*?)bThe information transmittedb/.exec(text)[1];

最新更新