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

String 如何从字符串中去除尾随换行符?,string,actionscript-3,String,Actionscript 3,在将行分割成数组之前,我需要从导入的csv末尾删除一些多余的“\n”(否则会得到额外的空行) 公共函数parseCSV(数据:字符串):数组{ //用于从数组末尾\n和\r删除换行符的内容 变量行:数组=data.split(/\R/); var前导码:数组=行。拼接(0,垃圾长度); var keyArray:Array=lines.splice(0,1)[0]。split(“,”); var-assocArray:Array=[]; 对于每个(变量行:行中的字符串) { var valArr

在将行分割成数组之前,我需要从导入的csv末尾删除一些多余的“\n”(否则会得到额外的空行)

公共函数parseCSV(数据:字符串):数组{ //用于从数组末尾\n和\r删除换行符的内容 变量行:数组=data.split(/\R/); var前导码:数组=行。拼接(0,垃圾长度); var keyArray:Array=lines.splice(0,1)[0]。split(“,”); var-assocArray:Array=[]; 对于每个(变量行:行中的字符串) { var valArray:Array=line.split(“,”); var assoc:Object={}; for(变量i:int=0;i我发现replace仅适用于主题字符串中第一次出现的目标。您可以改为尝试数组拆分/联接

public static function removeLineBreaks( s:String ) : String 
{ 
    return s.split("\r").join("\n");
}

或者,如果不需要分隔符,请将“\n”替换为“”。

您能详细解释一下这是如何工作的吗?我只想删除字符串末尾的换行符。这不就是用\r\n替换所有的吗?(在我的字符串中,我意识到它们都是\n实际上,我现在正在试图弄清楚\R是什么…)嗯?注意!如果您在正则表达式中有/g(全局)选项,则Replace适用于字符串中所有出现的搜索表达式!我很确定它实际上在这个字符串中(我以前不知道\R是什么)。我尝试了你的函数,它从末尾删除了一个无关的行,但仍然剩下一行(在我导入的CSV末尾有2个空行),它对我有效-我的测试代码中有4个空行。确定没有计算跟踪添加的最后一个换行符?它可能是单个尾随换行符。再添加一行:
data=data.replace(/\R$/,“”)这应该可以解决它。这真是太棒了!你愿意简要解释一下后两个正则表达式ju吗?这样我就能明白它们具体在做什么了。第二个匹配每行开头(^)之后的任何类型的空格(\s,包括换行符和换行符)或每行结尾($)之前的制表符(\t)或空格()的(|)匹配(/g)(如果未设置此选项,^和$将匹配字符串的开头和结尾)并用空字符串替换它们。第三个仅匹配字符串结尾前的一个尾随换行符。
// 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, ""); 
public static function removeLineBreaks( s:String ) : String 
{ 
    return s.split("\r").join("\n");
}