我从UI上的表中获取一行.Below只是一行 我控制台上表UI的值:
[ ' 0',
'ALPHA NUMERIC(100)\nPG_8_2670\nSt.Athens.,Pt\n1062645\nAutomation-if add row is editable\nALPHA NUMERIC(20)\nTIMESTAMP(19)\nYYYY-MM-DD(19)\n0' ]
现在我想将上述结果转换为以下格式。
[ ' 0','ALPHA NUMERIC(100)','PG_8_2670','St.Athens.,Pt','1062645','Automation-if add row is editable','ALPHA NUMERIC(20)','TIMESTAMP(19)','YYYY-MM-DD(19)','0' ]
我实际面临的问题是'St.Athens.,Pt'
中出现的逗号
我写了下面的代码,但这没有帮助:
client.getText(obj.table.addedRow,function(err, values) {
console.log('VAlues before changes:',values);
var str = values.toString();
str = str.replace(/\n/g,",");
var values = str.split(',').toString();
console.log('Values from table of empty row post changes:',values);
答案 0 :(得分:1)
从根本上说,看起来你不需要这些行
str = str.replace(/\n/g,",");
values = str.split(',').toString();
直接拆分\ n可能更有效;从而
values = str.split('\n');
你可能想要更好地管理数组;类似于带有pop-push或loop-push组合的循环应该可以为您提供所需的结果。
这是一个完整的工作代码示例:
var startArray = [ ' 0',
'ALPHA NUMERIC(100)\nPG_8_2670\nSt.Athens.,Pt\n1062645\nAutomation-if add row is editable\nALPHA NUMERIC(20)\nTIMESTAMP(19)\nYYYY-MM-DD(19)\n0' ];
var endArray = [];
startArray.forEach(function(key) {
if(key.indexOf("\n")>=0) {
endArray = endArray.concat(key.split('\n'));
} else {
endArray.push(key);
}
});
// voila, endArray contains
// [ ' 0','ALPHA NUMERIC(100)','PG_8_2670','St.Athens.,Pt','1062645','Automation-if add row is editable','ALPHA NUMERIC(20)','TIMESTAMP(19)','YYYY-MM-DD(19)','0' ]