假设这是我的文本文件info.txt:
My Name is
Joe
My Age is
25
My phone is
Nokia
有没有一种有效的方法可以使用Javascript返回25(知道它是在“我的年龄”之后出现的?
我正在使用vanilla Javascript和FileReader
答案 0 :(得分:1)
您可以简单地使用RegEx:
let matches = str.match(/My Age Is\s?\n([0-9]+)/i)
let age = matches[1];
这是JSFiddle:https://jsfiddle.net/tee3y172/
而且,这就是崩溃的原因:
([0-9]+)
- 跟随任何一系列数字(您也可以使用\d+
)并将它们分组(这就是Perenthesis的用途)。然后,分组允许您在索引1(matches[1]
)处捕获所需的文本。
为了在“我的年龄”之后匹配该行上的任何内容,您可以使用(.*)
来匹配除换行符之外的任何内容:
let matches = str.match(/My Age Is\s?\n(.*)/i)
let age = (!!matches) ? matches[1] : 'No match';
这是JSFiddle:https://jsfiddle.net/spadLeqw/
答案 1 :(得分:1)
最简单的方法是使用regular expression
来匹配特定单词后面的数字
const str = 'My Name is\nJoe\nMy Age is \n25\nMy phone is\nNokia';
const match = str.match(/My Age is \n(\d+)/)[1];
console.log(match);
其他资源
答案 2 :(得分:1)
txt.split(/Age.+/)[1].match(/.+/)
我会使用.split()
作为游标。
let txt =
`My Name is
Joe
My Age is
25
My phone is
Nokia`,
age = txt.split(/Age.+/)[1].match(/.+/)[0]
console.log(age)

将文字内容拆分为包含Age
的行,并与下一行匹配。