我让员工从一个系统将数据导出为CSV,并使用它来导入CMS中的内容。
问题是我们的CSV导入脚本的CSV导出格式不够干净。
jQuery是否具备以下功能?
我想转换一个字符串,例如:
Hello,"Goodbye, Goodbye","Goodbye",Hello,Hello,Hello,"Goodbye, Goodbye"
要:
"Hello","Goodbye, Goodbye","Goodbye","Hello","Hello","Hello","Goodbye, Goodbye"
- 以便每个条目始终包含在引号中,而不仅仅是包含逗号的条目(,
)。
我一直在使用.replace(),但无法找到一致的方法来处理这个问题。
答案 0 :(得分:1)
var value = $("#text").val();
//你好,“再见,再见”,“再见”,你好,你好,你好,“再见,再见”
value = value.replace(',', '","');
// Hello“,”“Goodbye”,“Goodbye”“,”“Goodbye”“,”Hello“,”Hello“,”Hello“,”“Goodbye”,“Goodbye”
value = '"' + value + '"';
//“你好”,“”再见“,”再见“,”“再见”“,”你好“,”你好“,”你好“,”“再见”,“再见”“
value = value.replace ('""','"');
//将所有双“”替换为“。”您将获得所需的输出
* 更新的答案: *
替换仅替换特定字符串的第一次出现。 请尝试以下方法:
var value = $('#test').val();
value = value.replace(/,/g, '","');
value = '"' + value + '"';
value = value.replace (/""/g,'"');
$('#result').html(value);
答案 1 :(得分:1)
检查此解决方案,它将首先找到所有正确的出现并用特定字符串替换它们
更正不正确的字符串,然后给出正确的结果
请参阅javascript控制台以查看更改
<script type='text/javascript'>//<![CDATA[
$(window).load(function(){
OurTestData = 'Hello,"Goodbye, Goodbye","Goodbye",Hello,Hello,Hello,"Goodbye, Goodbye"';
console.log(OurTestData);
var pattern = /"([^"]+)"/g;
var match;
var MatchedArray = [];
while(match = pattern.exec(OurTestData)) {
MatchedArray.push(match[1]);
}
OurTestData = OurTestData.replace(/"([^"]+)"/g, "CorrectSavedForLaterConversion");
splittedArray = OurTestData.split(',');
var preOutputString ="";
preOutputString= '"' + splittedArray.join('" , "') + '"';
/**
Replace With Correct String
*/
i=0;
while(preOutputString.indexOf('CorrectSavedForLaterConversion') >= 0){
preOutputString= preOutputString.replace(/CorrectSavedForLaterConversion/,MatchedArray[i])
i++;
}
console.log(preOutputString);
});//]]>
</script>