2011-12-26 37 views
1

我需要用一个换行符替换flex中的多个连续换行符。在Flex中使用单个换行符替换连续换行符或新换行符

实施例:

字符串

"My name is blah blah \n\n\n\n 
My name is blah \r\n\r\n\r\n" 

应转换为

"My name is blah blah \n 
My name is blah \n" 

希望的例子更容易理解。

我正在使用组件来呈现它。

我想使用正则表达式是最简单的方法,但如果人们可以指引我参考/示例轻松完成此操作,那么仍然会很好。

我使用的是flex 4.5。

感谢,

Neeraj

回答

3

您可以使用String.replace方法来完成这项工作,可以使用string或re gular表达式来匹配字符串值的某个部分。所以关于你的问题,代码将如下所示:

var filter: String = "My name is blah\r\r\r blah \n\n\n\r\nMy name is blah\r\n\r\r\n\n\n\r\n"; 

filter = filter.replace(/(\r|\n)+/g, "\n"); 
+1

+1,但请将'(\ r | \ n)'改为'[\ r \ n]'。这种方式更具可读性,并且可能*效率更高。 – 2011-12-27 12:43:01

0

多个连续的新行/换行字符

如果你的意思序列为 “\ r \ n”,则:

var myString:String = "text\r\ntext\r\ntext\r\n"; 
myString = myString.split("\r").join("\n").split("\n\n").join("\n"); 
+0

嗨我已经添加了一个例子来说明。 – Neeraj 2011-12-26 10:11:37

+0

我的代码为这种情况。 – kostik 2011-12-26 10:45:13

+0

一种回旋的方法,但它可能工作。但首先你需要把所有的正斜杠('/')改成反斜杠('\\')。 – 2011-12-27 12:33:28