CSV转Markdown表格时如何检测并处理非|开头的行?
CSV转Markdown表格行首缺失
|兼容方案 你可以通过正则多行匹配规则批量检测所有行首未带|的行并自动补全,修改后的完整代码如下:
document.querySelector("textarea.csv").addEventListener('input',(e) => { const convert = e.target.value // 替换半角逗号加空格为表格分隔符 .replaceAll(", ", " | ") // 合并处理行尾逗号加可选空格的换行场景,简化重复规则 .replace(/, ?\n/g, " |\n| ") .replace(/ \| \n/g, " |\n| ") // 多行模式匹配所有行首不是|的位置,补全前缀 .replace(/^(?!\|)/gm, "| ") console.log(convert); document.querySelector("textarea.markdown").value = convert; })
改动说明
- 新增
replace(/^(?!\|)/gm, "| ")规则:m修饰符开启正则多行匹配模式,^(?!\|)是负向先行断言,会匹配所有行首位置不是|的场景,直接在对应位置补全|即可覆盖所有行首缺失管道符的情况 - 合并了原来重复的换行匹配规则,减少代码冗余
- 去掉了原来末尾拼接
|的重复逻辑,避免行首重复拼接管道符
如果你需要兼容带引号包裹的含逗号CSV字段,建议先通过轻量CSV解析库拆分字段后再拼接Markdown表格,避免正则误替换字段内部的逗号。
内容的提问来源于stack exchange,提问作者Weijing Jay Lin
相关产品推荐
相关产品推荐

