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

JavaScript如何提取webhook返回message字段中的实际消息内容

JavaScript 提取Webhook响应中实际消息内容的实现

你对接的Webhook接口响应格式固定为message: '发送者名称: 实际消息内容',可根据你当前拿到的数据形态,选择对应处理方案:

方案1:已解析拿到message字段的纯值

如果你已经将响应解析为JS对象,message字段的值就是单引号包裹的内部内容(例如值为uat.chatbot: Klhhn、Zulkifli Raihan: Hello),可直接用以下两种方式提取:

  • 字符串拆分法(兼容性好,无正则兼容问题)
// 示例:已拿到的message字段值
const messageVal = "Zulkifli Raihan: Hello";
// 跳过第一个冒号+空格前的发送者名,剩余内容拼接为实际消息
const realContent = messageVal.split(': ').slice(1).join(': ');

// 测试示例
console.log(realContent) // 输出: Hello

注意:该写法会保留消息内容中自带的: 字符,不会出现消息被截断的问题,适配绝大多数业务场景。

  • 正则匹配法(代码更简洁)
const messageVal = "uat.chatbot: Klhhn";
// 匹配第一个冒号后的所有内容作为捕获组
const realContent = messageVal.match(/^.+?:\s*(.*)$/)?.[1] ?? '';

// 测试示例
console.log(realContent) // 输出: Klhhn

注意:正则默认匹配从字符串开头到第一个冒号的内容为发送者名,后续所有内容均判定为实际消息,空值时返回空字符串避免报错。

方案2:拿到的是原始响应文本,未做字段解析

如果你手里是未解析的原始响应字符串(例如整行内容为message: 'Zulkifli Raihan: Hello'),可以先提取单引号内的字段值,再做内容拆分:

const rawResponse = "message: 'uat.chatbot: Klhhn'";
// 第一步:提取单引号包裹的message字段值
const messageVal = rawResponse.match(/message:\s*'([^']+)'/)?.[1] ?? '';
// 第二步:拆分得到实际消息
const realContent = messageVal.split(': ').slice(1).join(': ');

// 测试示例
console.log(realContent) // 输出: Klhhn

边界适配说明

  • 支持发送者名称包含空格、特殊符号(例如示例里的.)的场景
  • 支持实际消息内容本身包含冒号、空格的场景,不会错误截断
  • 空值场景默认返回空字符串,不会抛出JS运行错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 22:06:26