Javascript:如何从多行字符串中解析一行?

时间:2017-01-12 01:53:39

标签: javascript

目前我使用<pre>显示一个大字符串段落,如下所示,其中每一行用新行表示:

SchoolDistrictCode:291238-9
location_version:3.4
build:e9kem

由此,我如何解析build:e9kem?数据每次都有所不同,因此一旦识别出单词build,就想解析该行。

1 个答案:

答案 0 :(得分:2)

/^build:(.*)$/m

应该做的伎俩。 m标记会导致^$锚点在该行的开头和结尾匹配。

如果您将其称为

string.match(regexp)

匹配部分(在build:之后,匹配.*的部分,即字符串e9kem)将位于结果数组的第二个元素中。

const regexp = /^build:(.*)$/m;

const stringPar = `SchoolDistrictCode:291238-9
location_version:3.4
build:e9kem`;

console.log(stringPar.match(regexp)[1]);

当然,如果没有匹配项,match会返回null,因此您可能需要检查:

var matches = stringPar.match(regexp);
if (matches) console.log(matches[1]);
else console.log("No match.");

或者,另一个常见的习语是

console.log((stringPar.match(regexp) || [])[1]);

如果不匹配,将记录undefined