关于javascript:删除最后一个逗号

Removing last comma

我从一个文件中读取内容,然后在编辑后再写另一个文件。在编辑时,我在每一行的末尾加了一个逗号,然后把它写到文件中。对于最后一行,我不想写逗号。我该怎么做呢?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 while(!inputFile.AtEndOfStream){
    var readLine =  inputFile.ReadLine();
    var omitChars = new RegExp("#define").test(readLine);
    if(omitChars==1){
        var stringReadPosition = readLine.substr(8);
        var finalString = stringReadPosition.replace(/\s+/g, ': ');
              asd = outputFile.Write(finalString.replace(/^(_)/,"") +",

"
);
    }
 }
 outputFile.Write("};

"
);
 inputFile.Close();
 outputFile.Close();
}


您可以使用substring在组成字符串后删除字符串的最后一个字符:

1
finalString = finalString.substring(0, finalString.length - 1);

另一种选择是使用slice,考虑到负指数与字符串末尾相关:

1
finalString  = finalString.slice(0,-1);

了解更多信息。

更新:对于您的案例,您可以检查是否达到了EOF,即您已经阅读了最后一行,然后应用slicesubstring

1
2
3
4
5
6
7
8
9
10
11
12
//....
var stringReadPosition = readLine.substr(8);
var finalString = stringReadPosition.replace(/\s+/g, ': ');

//Check if stream reached EOF.
if(inputFile.AtEndOfStream) {
    finalString  = finalString.slice(0,-1);
}
asd = outputFile.Write(finalString.replace(/^(_)/,"") +",

"
);
//....


尝试此asd=asd。替换(/,s*$/,");这将删除最后一个逗号,我已经尝试过了,它正在工作。检查它是否在您的代码中工作。在while循环内尝试此代码