我在網上搜索了一種方法來做到這一點,到目前爲止我只遇到了不符合標準的例子尋找...在javascript中用兩個不同短語分隔的大字符串中提取字符串
我想提取之間出現「收到:」字符串和「發送的信息」
通常情況下,字符串將顯示爲:
2014-01- 23 13:26:13 - 吉姆超人收到: [email protected]
請唧唧歪歪的,我們需要一個新的超級英雄在管理者測試BLA BLA的複雜
supermanager [娃娃]
傳輸的信息
我在網上搜索了一種方法來做到這一點,到目前爲止我只遇到了不符合標準的例子尋找...在javascript中用兩個不同短語分隔的大字符串中提取字符串
我想提取之間出現「收到:」字符串和「發送的信息」
通常情況下,字符串將顯示爲:
2014-01- 23 13:26:13 - 吉姆超人收到: [email protected]
請唧唧歪歪的,我們需要一個新的超級英雄在管理者測試BLA BLA的複雜
supermanager [娃娃]
傳輸的信息
聽起來像一個簡單的字符串:
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
請注意如何將長度添加到「收到:」。這是因爲「從...接收到」的文本將不會包含在您的輸出中。
我很感謝你的回答,這就是我一直在尋找的。我對JavaScript並不熟悉,而且這種方法有效。 –
如果同一文本重複多次,該怎麼辦?有沒有辦法阻止它被添加到str變量? –
這是一個稍微不同的問題。如果你有很多需要解析的消息,你首先需要理解如何在使用我給出的解析答案之前將它們分開。你需要發佈一個例子,以便找到普通的分頻器。 (可能是一個不同的問題。) – 64BitBob
,你可以做這樣的:
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 transmitted\b/.exec(text)[1];
怎麼樣一個正則表達式?
str = "2014-01-23 13:26:13 - Jim Superman received from: [email protected]"
/(?: received from: (.*?) The information transmitted)/.exec(str)[1]
您如何嘗試將您遇到的示例與您嘗試執行的操作相匹配? – Jerry
'.split(start).pop().split(end)[0]' – elclanrs
^^^^我喜歡它! – adeneo