我需要用JavaScript解析逗号分隔的字符串。该字符串是从CSV文件中提取的。该字符串将被\ r \ n,\ n或\ r分割。第一行是标题。
var str = 'firstname,middlename,lastname,address1,address2,city,st,zip,Custom01,Custom02,Custom03,Custom04,Custom05,Custom06,Custom07,Custom08,Custom09,Custom10,Custom11,Custom12,Custom13,Custom14,Custom15,Custom16,Custom17,Custom18,Custom19,Custom20 \n K,,P,123 ST,,CENTENNIAL,CO,80122-3011,,,,,,,,,,,,,,,,,,,, \n K,,P,123 ST,,AURORA,CO,80013-2355,,,,,,,,,,,,,,,,,,,, \n K,,P,123 ST,,LAKEWOOD,CO,80228-5332,,,,,,,,,,,,,,,,,,,,';
我需要做两件事。
在regext101.com上测试了一些没有运气的例子。甚至没有接近所需要的东西。任何帮助,将不胜感激。谢谢!
答案 0 :(得分:1)
这是我使用sln的代码。它使用正则表达式使用我原始问题中列出的条件从csv文件解析逗号分隔的字符串。
for (i = 1; i < rows.length; i++) {
var sample = rows[i].match(/^(?:[^,]*,){3}([^,]+),[^,]*,([^,]+),([^,]+),(\d{5})/gm);
if (sample === null) {
alert('Either the address1, city, st, or zip is blank. Or zip is more then 5 digits.');
}
}
答案 1 :(得分:0)
我认为你不需要正则表达式。字符串拆分将执行您想要的操作:w3schools
var str = 'firstname,middlename,lastname,address1,address2,city,st,zip,Custom01,Custom02,Custom03,Custom04,Custom05,Custom06,Custom07,Custom08,Custom09,Custom10,Custom11,Custom12,Custom13,Custom14,Custom15,Custom16,Custom17,Custom18,Custom19,Custom20 \n K,,P,123 ST,,CENTENNIAL,CO,80122-3011,,,,,,,,,,,,,,,,,,,, \n K,,P,123 ST,,AURORA,CO,80013-2355,,,,,,,,,,,,,,,,,,,, \n K,,P,123 ST,,LAKEWOOD,CO,80228-5332,,,,,,,,,,,,,,,,,,,,';
var str_parts = str.split(',');
var address1 = str_parts[3];
var city = str_parts[5];
var street = str_parts[6];
var zip = str_parts[7];
我留下检查这些不是空的,作为读者的练习。