Javascript 在带有regex的引号中查找逗号,并替换为HTML equiv

Javascript 在带有regex的引号中查找逗号,并替换为HTML equiv,javascript,regex,replace,Javascript,Regex,Replace,我正在查找一个字符串,例如: "Hello, Tim" Land of the free, and home of the brave 我需要它变成: "Hello, Tim" Land of the free, and home of the brave 我认为这很简单,但就我个人而言,我无法理解。我正在通过AJAX导入一个包含1000个条目的损坏CSV,所以我只需要在双引号内转换逗号 我将如何使用JavaScript实现这一点?我想不出来。我试过了 var str =

我正在查找一个字符串,例如:

"Hello, Tim"

Land of the free, and home of the brave
我需要它变成:

"Hello, Tim"

Land of the free, and home of the brave
我认为这很简单,但就我个人而言,我无法理解。我正在通过AJAX导入一个包含1000个条目的损坏CSV,所以我只需要在双引号内转换逗号

我将如何使用JavaScript实现这一点?我想不出来。我试过了

var str = '"Hello, Tim"\n\
\n\
Land of the free, and home of the brave';

str
.split('"')
.map(function(v,i){ return i%2===0 ? v : v.replace(',',','); })
.join('"');

对于非支持浏览器的
map()

在第一步中,我们找到所有引号,并仅替换其中的逗号

您甚至可以允许转义引号:

  • CSV样式(带两个双引号)-
    /“([^”]|”“)*”/g
  • 字符串文字样式-
    /“([^”\\]\\\)*”/g

将上述字符串作为变量
html
可以使用以下代码:

var m = html.match(/"[\s\S]*"/);
html = html.replace(m[0], m[0].replace(/,/g, ','));
输出
result=subject.replace(/(“[^”]+?),([^”]*?”)/img,“$1,;$2”)


这将适用于您的示例,唯一的问题是,如果在
中有多个
,它将不起作用。如果您需要它在
中有多个
然后查看使用javascript解析CSV数据的更完整方法。

您确定要使用javascript来完成此操作吗?为什么不在导入步骤之外修复数据,然后导入固定版本?顺便说一句,引号中的逗号在CSV中完全有效。它们是有效的,但JSON仍然很奇怪。您的JSON库应该能够处理字符串文字。。。嗯。只是指出了一些显而易见的事情:)
我正试图用CSVtoArray()from:解析,我的数据集是:每次点击like并拆分“因此数组只有
这仍然没有考虑字符串之间的转义引号,我们可以在需要时进一步使其复杂化。我想我在HTML的双引号加双引号中也遇到了问题。例如:
。这是打破和返回
@Oscar-没有办法从这个问题猜测这就是你正在做的。。。这个问题比看起来要复杂得多。您能否用完整的细节更新这个问题,包括JSON/CSV字符串中有问题的片段,并解释标准解析器是如何失败的?(哦,我看到你在评论中这样做了。太好了!)我认为这将完全改变问题的范围。我会提出一个新问题,包括更多细节和所有失败的地方。。。
var m = html.match(/"[\s\S]*"/);
html = html.replace(m[0], m[0].replace(/,/g, ','));
"Hello, Tim"

Land of the free, and home of the brave