2

我有以下代码,

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

空格即“\t”被删除,但换行符“\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

4 回答 4

13

在少数情况下,行尾标记可能是: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 中进行换行,但它们不是行尾字符。

于 2012-05-14T10:18:45.730 回答
2

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

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

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

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

于 2012-05-14T11:20:48.943 回答
0

你确定它不是一个

<br>

或者

</br>?

或者

/r
于 2012-05-14T10:08:25.697 回答
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))
于 2016-11-08T05:32:04.733 回答