悦省yueser.com

← 全部指南

怎么给多行文本批量加引号?JSON 与 CSV 的转义不一样

把一段话放进代码、放进 JSON 数组、贴进对话,前后都要补引号。逐行加引号并转义行内引号,一步就能做完,不必反复确认引号是否成对。

打开工具:添加引号

什么时候需要成对的引号

写测试数据时,一列地名要变成 JSON 数组的元素:「北京」「上海」「广州」。手动补引号极容易漏一处,而漏一处就会让 JSON.parse 直接报错,还得逐行找出到底哪一行少了。

另一种场景是把一段引用贴进对话或文档,需要明确标出起止边界;或者把几句文案放进代码的字符串数组,此时行内的双引号必须先转义,否则字符串会提前结束,后面的代码全部变成语法错误。

逐行处理,转义用的是 JSON 风格

工具对每一行单独处理:非空行前后各加一个直双引号,行内原有的双引号替换成反斜杠加双引号,空行保持为空。所以三段文字得到的是三行各自带引号,而不是整段被一对引号包住。

这个转义方式符合 JSON 和多数编程语言的字符串写法,但不符合 CSV。CSV 规定字段内的双引号用两个双引号表示,不是反斜杠。直接把结果粘进 CSV,字段边界会解析错乱,需要把反斜杠转义换成双写。

局限,以及该换用什么

它只加直双引号,没有单引号、中文引号「」或弯引号“”的选项,也不能只给某几行加。行内的换行不会被转义成转义序列,所以整段多行文本不会变成一个合法的 JSON 字符串,只是每行各是一个字符串。

需要整段一对引号时,先把换行合并成一行再加;需要 CSV 字段时,用表格软件导出更可靠;需要 JS 模板字符串时,反引号和美元花括号也要处理,那已经超出这个工具的范围。

常见问题

会加中文引号吗?

不会,只会加直双引号。中文排版里常用的「」或“”属于另一套符号,放进代码、JSON 或 CSV 时必须用直引号,否则解析器不认。要中文引号只能转换后手动替换。

多行文本会怎么处理?

每行单独加引号,空行保持为空。因此结果是多行、每行一个带引号的字符串,而不是整段被一对引号包住。要整段加一对引号,先把换行合并掉再处理。

原文里已经有引号会怎样?

行内原有的双引号会被替换成反斜杠加双引号,外层再补一对。如果原文本身已经带引号,结果就会出现两层引号,使用前先确认这是不是想要的效果,避免多套一层。

相关工具:添加引号