如何从字符串中删除尾随换行符?

Dam*_*mon 3 string actionscript-3

我需要从我导入的csv的末尾删除一些冗余的'\n',然后再将它们分成一个数组(否则我得到额外的空行).

public function parseCSV(data:String):Array {

    //something to strip linebreaks, \n and \r from end of array

    var lines : Array = data.split ( /\R/ );
    var preamble : Array = lines.splice(0,trashLength);
    var keyArray : Array = lines.splice ( 0, 1 )[0].split ( "," );
    var assocArray : Array = [];
    for each (var line:String in lines)
    {
        var valArray : Array = line.split ( "," );
        var assoc : Object = {};
        for (var i : int = 0; i < keyArray.length; i++)
        {
            var key : String = keyArray[i];
            if (key != null && key != "") assoc[key] = valArray[i];
        }
        assocArray.push ( assoc );
    }

    return assocArray;
}
Run Code Online (Sandbox Code Playgroud)

wel*_*rat 6

// normalize line endings to \n, because \r is not recognized as "end of line"
data = data.replace (/\s*\R/g, "\n");  
// remove leading and trailing whitespace
data = data.replace (/^\s*|[\t ]+$/gm, ""); 
Run Code Online (Sandbox Code Playgroud)

  • @Damon:好的.第二个匹配任何类型的空格(/ s,包括换行符和/ linefeed)直接在每行(^)或(|)出现tab(\ t)或space()之后直接在行结束之前($)并用空字符串替换它们.第三个只匹配字符串结尾之前的一个尾随换行符. (2认同)