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

正则表达式按双引号分割文本异常,请求修复JavaScript代码

修复数组转列表时的元素分割错误

问题说明

从数据库获取的数组包含3个独立元素,其中第三个元素内部带有逗号:

let description = [
  "Time Usage: 9.00am - 4.00pm",
  "Rental of Commune Room 01 (7 Hours)",
  "55\" Smart TV, 1x Clear Writing Glass, Marker Pen, HDMI Cable, Complimentary WiFi, and Filtered Water"
];

期望将每个数组元素作为独立列表项输出,但原代码错误地将第三个元素内部的逗号也当作分隔符,导致列表项被不合理拆分。

错误原因

原代码先通过toString()将数组转为字符串,这会把数组元素间的分隔逗号和元素内部的逗号混为一谈。后续的正则替换尝试区分引号内的逗号,但转成字符串后引号的上下文丢失,正则无法正确识别需要保留的内部逗号,最终导致错误分割。

修复后的代码

直接利用数组本身的结构,每个元素就是完整的列表项,无需额外处理内部逗号:

生成Markdown列表格式

let description = [
  "Time Usage: 9.00am - 4.00pm",
  "Rental of Commune Room 01 (7 Hours)",
  "55\" Smart TV, 1x Clear Writing Glass, Marker Pen, HDMI Cable, Complimentary WiFi, and Filtered Water"
];

// 直接将每个元素转为带*的列表项
const formatted = description.map(item => `* ${item}`).join('\n');

console.log(formatted);

生成HTML列表格式(匹配你的期望输出)

如果需要生成<ul>/<li>结构:

let description = [
  "Time Usage: 9.00am - 4.00pm",
  "Rental of Commune Room 01 (7 Hours)",
  "55\" Smart TV, 1x Clear Writing Glass, Marker Pen, HDMI Cable, Complimentary WiFi, and Filtered Water"
];

const htmlList = `<ul>\n  <li>${description.join('</li>\n  <li>')}</li>\n</ul>`;

console.log(htmlList);

输出结果

运行修复后的代码,会得到符合预期的输出:

  • Time Usage: 9.00am - 4.00pm
  • Rental of Commune Room 01 (7 Hours)
  • 55" Smart TV, 1x Clear Writing Glass, Marker Pen, HDMI Cable, Complimentary WiFi, and Filtered Water

对应的HTML结构:

<ul>
  <li>Time Usage: 9.00am - 4.00pm</li>
  <li>Rental of Commune Room 01 (7 Hours)</li>
  <li>55" Smart TV, 1x Clear Writing Glass, Marker Pen, HDMI Cable, Complimentary WiFi, and Filtered Water</li>
</ul>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 10:13:28