在 JavaScript 中用逗号分割字符串,同时保留双引号内容
在 JavaScript 中处理逗号分隔的字符串时,处理这一点至关重要使用双引号括起某些部分的情况。忽略这一点可能会导致意外的拆分。
问题:
给定一个逗号分隔的字符串,目标是获取一个保留双引号内内容的数组。例如,将“a, b, c, “d, e, f”, g, h”转换为六个元素的数组:[“a”, “b”, “c”, “d, e, f” , "g", "h"].
错误的方法:
使用 split() 方法和正则表达式,如 /, |"[^"] "/g 会错误地分割字符串,甚至提取双引号内的内容。
正确的解决方案:
为了正确处理这种情况,需要更定制的正则需要表达式:
/(".*?"|[^",\s]+)(?=\s*,|\s*$)/g
解释:
使用:
const str = 'a, b, c, "d, e, f", g, h'; const arr = str.match(/(".*?"|[^",\s]+)(?=\s*,|\s*$)/g); for (let i = 0; i < arr.length; i++) { console.log(`arr[${i}] = ${arr[i]}`); }
输出:
arr[0] = a arr[1] = b arr[2] = c arr[3] = "d, e, f" arr[4] = g arr[5] = h
以上是如何在 JavaScript 中拆分逗号分隔的字符串,同时保留双引号内的内容?的详细内容。更多信息请关注PHP中文网其他相关文章!