在Javascript中的单词之后获取下几行

时间:2017-09-01 06:52:07

标签: javascript

我正在尝试解析一个电子邮件正文,并在javascript中的“位置”一词后面显示接下来的3行。

这是我的文字:

布拉赫,等等 其他电子邮件内容

位置:
宾夕法尼亚大道1600号 华盛顿特区20006
美国

所以我知道要做的第一件事是使用indexOf来解析“Location”,但是如何在那之后获得三行?我是否必须对文本区域中的所有行进行“拆分”,然后使用“\ n”以某种方式转到下一行?我必须使用RegEx吗?

df[Cols].eq(df['Column_to_be_match'], 0)

2 个答案:

答案 0 :(得分:1)

这应该做:

var text = document.getElementById("input").value;

var stripped = text.replace(/[\s\S]+Location:[\r\n]+/gi, '');
var addressLines = stripped.trim().split(/[\r\n]+/);

console.log(addressLines);
<textarea id="input">
Blah blah other email content

Location:
1600 Pennsylvania Avenue
Washington, DC 20006
USA
</textarea>

  1. 删除Location:
  2. 之前的所有内容
  3. 拆分换行符上的剩余文字。

答案 1 :(得分:0)

如果您将文本按\n and/or \r using a regex分割为answer by @Cerbrus does(作为lines),则可以使用索引(i)逐行循环以访问文本在当前行。

一旦您确认该行包含Location(使用line.indexOf('Location') !== -1),您就可以使用lines.slice(i + 1, i + 4)获取以下三行。

function getLocation() {
    var textarea = document.getElementById('text');
    var lines = textarea.value.split(/[\r\n]+/);
    for(var i = 0; i < lines.length; i ++) {
        var line = lines[i];
        if(line.indexOf('Location') !== -1) {
            var nextThreeLines = lines.slice(i + 1, i + 4);
            console.log(nextThreeLines);
        }
    }
}
#text {
    height: 150px;
    width: 250px;
}
<textarea id="text">
Blah blah other email content

Location:
1600 Pennsylvania Avenue
Washington, DC 20006
USA
</textarea>
<br>
<button onclick="getLocation()">Get Location</button>