gpt4 book ai didi

javascript - 拆分逗号并忽略双引号(来自文件阅读器/加载的文件 - 使用正则表达式)

转载 作者:行者123 更新时间:2023-11-30 16:36:32 25 4
gpt4 key购买 nike

我在表单中输入了一些数据,可以从 .txt 或 .csv 文件接收数据。该代码将数据拆分为逗号 (,) 和任意数字(以避免数据库文件中的 ID 号)。

我在我的代码中使用了以下正则表达式:

var text = textFromFileLoaded.split(/[\,\d]/);

像这样,它会将所有单词拆分为逗号 (\,) 和数字 (\d)。它工作正常。但是双引号之间的单词不应该被拆分。例如:

文件中的数据:样本一、样本二、样本三、样本四、样本五

输出是:

sample-one | sample-two | "sample-three | sample-four" |

输出应该是:

sample-one | sample-two | sample-three, sample-four | sample five |

我查了很多其他相关问题,答案通常是这样的:

("\"?(,|$)(?=(([^\"]*\"){2})*[^\"]*$) *\"?")

或:

(/('[^']+'|[^,]+)/g)

但到目前为止,在我的代码中没有任何类似的工作。我做错了什么吗?

函数代码如下:

function loadFileAsText()
{
var fileToLoad = document.getElementById("fileToLoad").files[0];

var fileReader = new FileReader();
fileReader.onload = function(fileLoadedEvent)
{
var textFromFileLoaded = fileLoadedEvent.target.result;
var text = textFromFileLoaded.split(/[\,\d]/);
document.getElementById("inputTextToSave").value = text[0];
document.getElementById("inputTextToSave2").value = text[1];
document.getElementById("inputTextToSave3").value = text[2];
document.getElementById("inputTextToSave4").value = text[3];
};
fileReader.readAsText(fileToLoad, "UTF-8");
}

谢谢。

最佳答案

因为我的代码片段很有用:

var text = 'sample-one, sample-two, "sample-three, sample-four", sample-five';
var re = /,\s*(?=(?:[^"]|"[^"]*")*$)|\d/g;
var result = [].map.call(text.split(re), function(el) {
return el.replace(/^"|"$/g, '');
}
);
document.getElementById("r").innerHTML = result.join("<br/>");
<div id="r"/>

我所做的只是在正则表达式引号外的逗号中添加一个带数字的替代项,并删除替换回调函数中双引号括起的条目周围的初始和最终 "

关于javascript - 拆分逗号并忽略双引号(来自文件阅读器/加载的文件 - 使用正则表达式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32630340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com