javascript用逗号分割字符串忽略引号内

标签 javascript regex

Possible Duplicate:
Javascript code to parse CSV data

我有这个字符串:

"display, Name" <test@test.com>, display" Name <test@test.com>, test@test.com

我想把这个字符串分成一个数组

array[0] = "\"display, Name\" <test@test.com>"
array[1] = "display\" Name <test@test.com>"
array[2] = "test@test.com"

这是我的代码:

var comma = inQuotes = false;
for(var i=0;i<str.length;i++) {
            if (str[i] == '"') inQuotes = !inQuotes;
            comma = (str[i] == "," && !inQuotes)  ? true : false;
            item += (!comma) ? str[i] : "";
            if(comma || i == str.length-1) {  
                items.push(item);
                item = "";
            }    
        } 

我的问题是,如果字符串中有一个双引号而没有结束符

非常感谢您的帮助...

最佳答案

我尝试了这个,它适用于上面的字符串 jsfiddle

var a = '"display, Name" <test@test.com>, display" Name <test@test.com>, test@test.com';
var aa = a.match(/"(.*?)"(.*?),|(.*?),|(.*?)$/g); 
aa.pop();
aa // [""display, Name" <test@test.com>,", " display" Name <test@test.com>,", " test@test.com"]

关于javascript用逗号分割字符串忽略引号内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13316370/

相关文章:

php - 如何按设定的时间间隔重新解析 XML 文档?

javascript - 如何有选择地用 HTML 替换文本?

php - 正则表达式用制表符替换空格

java - 在 Jsoup 中如何在迭代期间更改/拆分节点

regex - MongoDB\uXXXX 问题

javascript - 谷歌扩展程序 : Tab Events - changing windows?

javascript - 为什么当我使用退格键或后退按钮时我的页面会跳回到顶部

javascript - 使用按钮在 div 中查找并显示所有选中的复选框标题

javascript - 如何在重定向完成后执行一些 jQuery 或 JavaScript 代码

c# - 基于正则表达式的数值表达式求解器