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

如何在JavaScript中拆分文本并保留双引号内短语生成指定格式?

问题分析与代码修改

原代码的核心问题

  1. 错误拆分字符串:使用split(' ')会将带空格的短语(如"on time")拆分为"on和time"两个片段,导致无法识别完整的短语。
  2. 未处理大小写转换:期望输出要求内容转为大写,但原代码没有做任何大小写转换。
  3. 格式生成错误:短语需要用两个双引号包裹,单个单词用一个双引号包裹,原代码对两种情况的格式处理都不符合要求。

修改后的代码

const _searchKeyword = req.body.fullTextKeyword;
// 用正则匹配所有被双引号包裹的内容,捕获组提取引号内的文本
const keywordMatches = _searchKeyword.match(/"([^"]+)"/g) || [];

const formattedKeywords = keywordMatches.map(match => {
  // 去掉前后的双引号,得到原始内容
  const content = match.slice(1, -1);
  // 转成大写
  const upperContent = content.toUpperCase();
  // 判断是否是短语(包含空格)
  if (content.includes(' ')) {
    // 短语用两个双引号包裹
    return `""${upperContent}""`;
  } else {
    // 单个单词用一个双引号包裹
    return `"${upperContent}"`;
  }
});

// 拼接所有处理后的结果
const concatenatedKeywords = formattedKeywords.join('');

代码说明

  • 正则匹配:/"([^"]+)"/g会全局匹配所有被双引号包裹的内容,确保带空格的短语被完整捕获。
  • 大小写转换:通过toUpperCase()将内容转为大写,符合期望输出要求。
  • 格式区分:判断内容是否包含空格,分别生成""短语""和"单词"的格式。
  • 拼接结果:直接用空字符串拼接处理后的内容,得到最终的目标格式。

测试验证

输入:"on time" "flight"
输出:""ON TIME""FLIGHT"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 20:42:50