2011-12-26 66 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