You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript:如何从指定位置获取首个换行符实现顺序无关字段提取

提取文本中指定字段的内容(顺序无关实现)

要实现不依赖字段顺序提取"Official Name:"对应的内容,核心思路是定位到该字段的起始位置后,直接截取到下一个换行符前的内容,下面提供两种实用方法:

方法一:正则表达式(简洁高效)

利用正则的非贪婪匹配,直接捕获"Official Name:"后到第一个换行符之间的内容,无需关心其他字段位置:

const description = `示例文本:
Code Tile Name: NYC Electrical Code
Official Name: 2011 New York City Electrical Code
Publish Date: 2011-01-01`;

// 匹配Official Name字段后的内容,trim()去除前后空格
const officialNameMatch = description.match(/Official Name:(.*?)\n/);
const officialName = officialNameMatch ? officialNameMatch[1].trim() : '';

console.log(officialName); // 输出:2011 New York City Electrical Code

如果需要忽略字段名的大小写,可以在正则末尾加i标志:/Official Name:(.*?)\n/i

方法二:字符串索引操作(更直观可控)

通过indexOf定位字段位置和后续换行符位置,手动截取内容,适合需要精细处理边界的场景:

const description = `示例文本:
Publish Date: 2011-01-01
Official Name: 2011 New York City Electrical Code
Code Tile Name: NYC Electrical Code`;

const fieldLabel = 'Official Name:';
const labelPos = description.indexOf(fieldLabel);

if (labelPos !== -1) {
  // 计算内容起始位置(跳过字段名本身)
  const contentStart = labelPos + fieldLabel.length;
  // 从内容起始位置开始找第一个换行符
  const nextLinePos = description.indexOf('\n', contentStart);
  // 截取内容:如果是最后一行没有换行,就截取到文本末尾
  const officialName = description.slice(contentStart, nextLinePos !== -1 ? nextLinePos : undefined).trim();
  
  console.log(officialName); // 输出:2011 New York City Electrical Code
} else {
  console.log('未找到Official Name字段');
}

这两种方法都完全不依赖其他字段的排列顺序,无论"Official Name:"在文本的哪个位置,都能准确提取对应内容。

内容的提问来源于stack exchange,提问作者alyssaeliyah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 01:07:05