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

如何在JavaScript中获取引号内的值,解析Dyno机器人?poll命令参数

JavaScript 提取投票命令中引号包裹内容的实现方案

你需要处理的是形如?poll "<title>" "<choice>" "<choice>"的Dyno机器人投票命令字符串,可通过正则匹配的方式快速提取标题和选项内容,具体实现如下:

核心实现思路

通过全局正则匹配所有双引号包裹的字符串,再按顺序拆分出标题和选项,无需手动切割字符串处理空格,适配参数内容包含空格的场景。

完整代码实现

function parseDynoPollCommand(commandStr) {
  // 校验命令前缀合法性
  const trimedStr = commandStr.trim()
  if (!trimedStr.startsWith('?poll ')) {
    throw new Error('输入内容不是合法的Dyno投票命令')
  }
  // 正则:匹配所有双引号包裹的内容,捕获组为引号内部文本
  const quoteContentRegex = /"([^"]+)"/g
  const resultList = []
  let currentMatch
  // 循环获取所有匹配项
  while((currentMatch = quoteContentRegex.exec(trimedStr)) !== null) {
    resultList.push(currentMatch[1])
  }
  // Dyno投票要求至少1个标题+2个选项,匹配结果少于3个说明格式错误
  if (resultList.length < 3) {
    throw new Error('投票命令格式错误,需包含1个标题和至少2个选项')
  }
  return {
    pollTitle: resultList[0],
    pollChoices: resultList.slice(1)
  }
}

// 调用示例
const testCommand = '?poll "本周团建去哪" "露营" "剧本杀" "KTV"'
const pollData = parseDynoPollCommand(testCommand)
console.log(pollData)
/* 输出结果:
{
  pollTitle: '本周团建去哪',
  pollChoices: [ '露营', '剧本杀', 'KTV' ]
}
*/

特殊场景适配

  • 如果参数内容包含转义双引号(如"内容带\"转义引号"),可将正则替换为/"(\\.|[^"\\])*"/g,再对捕获到的内容做转义字符还原即可
  • 如果需要同时兼容单引号包裹参数的场景,可将正则替换为/["']([^"']+)["']/g

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:06:03