[英]How can I trim a string which has multiple lines in Javascript
我有一個多行的字符串,每行之間有一個換行符。 為此,我首先修剪額外的換行符,然后拆分字符串。 使用的代碼是 -
function trimString(a){
var i = a.length;
var x;
for (var j = 0; j < i; j++) {
x = a[j].replace(/^\s*\n/gm,"");
a[j] = x;
}
}
function splitLogs(a,s1,s2,s3,s4,s5){
var i = a.length;
var x =[];
for (var j = 0; j < i; j++) {
x = a[j].split("\n");
s1.push(x[0]);
s2.push(x[1]);
s3.push(x[2]);
s4.push(x[3]);
s5.push(x[4]);
}
}
上面的代碼工作正常。
但問題是當我在多行字符串中有一個空/空值時。 每當一行中存在空值時,字符串就由兩個換行符分隔
字符串 1 示例:
line1:Processor
line2:
line3:xyz
line4:10
line5:user
line6:zzz
String2 示例:
line1:xy
line2:xz
line3:qw
line4:10
line5:df
line6:gg
對於上述情況,如果我使用 trimString() 函數,則獲得的新字符串是 -
line1:Processor
line3:xyz
line4:10
line5:user
line6:zzz
這不符合我為 line2 保留 null 值的目的,並導致將 line3 值混合到 line2 數組值。
有什么方法可以拆分字符串並將其推送到我必須轉儲到數據庫的各個變量。
1 - 分成單獨的行
2 - 修剪字符串
3 - 刪除空行
4 - 用\\n
分隔符加入它。
const resultString = targetString
.split('\n')
.map(line => line.trim())
.filter(line => Boolean(line))
.join('\n')
您的函數如下所示:
function trimString(a){
return a.split('\n')
.map(line => line.trim())
.filter(line => Boolean(line))
.join('\n')
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.