如何从动作脚本中的给定字符串中检测并删除“\ n”?

时间:2012-05-14 10:02:28

标签: actionscript-3

我有以下代码,

public static function clearDelimeters(formattedString:String):String
{
    return formattedString.split("\n").join("").split("\t").join("");
}

删除空格,即“\ t”,但不会从formattedString中删除换行符“\ n”。

我甚至尝试过

public static function clearDelimeters(formattedString:String):String
{
    var formattedStringChar:String = "";
    var originalString:String = "";
    var j:int = 0;
    while((formattedStringChar = formattedString.charAt(j)) != "")
    {
        if(formattedStringChar == "\t" || formattedStringChar == "\n")
        {
            j++;
        }
        else
        {
            originalString = originalString + formattedString;
        }
        j++;
    }
    return originalString;
}

这也行不通 预期的帮助是为什么不删除换行符分隔符以及删除换行符的一些方法。
感谢您的期待

4 个答案:

答案 0 :(得分:10)

有些情况下,行尾标记可能是:CRLF,CR,LF,LFCR。可能你的字符串包含行结尾的CRLF而不是LF(\ n)。因此,删除所有LF后,一些文本编辑器仍会将CR视为行尾字符。

请改为尝试:

//this function requires AS3
public static function clearDelimeters(formattedString:String):String {     
  return formattedString.replace(/[\u000d\u000a\u0008\u0020]+/g,""); 
}

请注意\ t是标签,它不是空格。或者如果您正在使用HTML,< br>和< br />用于在HTML中创建换行符,但它们不是行尾字符。

答案 1 :(得分:2)

正则表达式的答案是正确的,但我总是喜欢它的可读性更强的版本(不知道它对性能的影响)

result = string.split("\n\r").join("");

或将\ n和\ r分开。 \ n \ r \ n是所有操作系统的通用标准。检查维基百科以检查它们连接在一起的原因((CR + LF,'\ r \ n',0x0D0A))。

http://en.wikipedia.org/wiki/Newline#Representations

答案 2 :(得分:0)

你确定它不是

<br>

</br>?

/r

答案 3 :(得分:0)

// try this. it works for me!!! Wink-;^D
function removeNewLinesFrom(This){
nl='' + newline;
removed=''
for(i=0;i<=(This.length-1);i++){
if(This.charAt(i)!=nl){removed+=This.charAt(i)}
}
return(removed)
}
// Simplify the name of the function
rnlf=removeNewLinesFrom
// Wright a example
example='hello '+newline+'world'
// prompt the example
trace('prompt='+rnlf(example))