gpt4 book ai didi

javascript - 以逗号分隔,同时忽略特殊字符

转载 作者:行者123 更新时间:2023-11-29 21:11:24 29 4
gpt4 key购买 nike

我想用逗号分隔它而不是转义字符串。同时从中删除斜线。

var str = "02-Dentist,\"***IN-Den-WV,VA,SC,TN,LA-122016\",Riverside,888-885-6112,5,1,20.00%,1690000"

电流输出

["02-Dentist,\"***IN-Den-WV,VA,SC,TN,LA-122016\",Riverside,888-885-6112,5,1,20.00%,1690000"

预期输出

["02-Dentist","***IN-Den-WV,VA,SC,TN,LA-122016","Riverside","888-888-9999","5","1","20.00%","1690000"]

尝试过的代码

var replaced = str.replace(/[^\\],/,"$09").split("$09")

最佳答案

您似乎需要将字符串标记为双引号之间或逗号之间的内容。我假设这些字段用逗号分隔,并且可能用双引号括起来,里面有转义引号/实体。

你可以使用

var m,res = [];
var str = "02-Dentist,\"***IN-Den-WV,VA,SC,TN,LA-122016\",Riverside,888-885-6112,5,1,20.00%,1690000";
var re = /"([^"\\]*(?:\\.[^"\\]*)*)"|[^,]+/g;
while((m=re.exec(str)) !== null){
if (m[1])
res.push(m[1]);
else
res.push(m[0]);
}
console.log(res);

模式是:

/"([^"\\]*(?:\\.[^"\\]*)*)"|[^,]+/g

参见 its online demo .它匹配双引号子字符串和内部的任何转义实体,捕获引号之间的内容(使用 "([^"\\]*(?:\\.[^"\\]*)*)") 并且还匹配除 , 以外的 1+ 个字符与 [^,]+

使用 if (m[1]),我们可以检查第 1 组是否匹配,如果匹配,则推送第 1 组 (m[1]) 中的内容到最终数组。如果不是,则将整个匹配值推送到数组 (m[0])。

如果您的输入中没有转义实体,您甚至可以使用

/"([^"]*)"|[^,]+/g

参见 regex demo

关于javascript - 以逗号分隔,同时忽略特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41699433/

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