我正在尝试解析一个电子邮件正文,并在javascript中的“位置”一词后面显示接下来的3行。
这是我的文字:
布拉赫,等等 其他电子邮件内容位置:
宾夕法尼亚大道1600号
华盛顿特区20006
美国
所以我知道要做的第一件事是使用indexOf来解析“Location”,但是如何在那之后获得三行?我是否必须对文本区域中的所有行进行“拆分”,然后使用“\ n”以某种方式转到下一行?我必须使用RegEx吗?
df[Cols].eq(df['Column_to_be_match'], 0)
答案 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>
Location:
答案 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>