2011-06-12 12 views
1

我有一串文字,我試圖從javascript中的textarea中移除。我試圖刪除文本中的格式如下:Javascript正則表達式

類別:屬性

顏色:綠色< - 實例!

var catTitle = 'color'; 
var regexp = new RegExp(catTitle + '\:[.]*$', "g") 
textarea.value = textarea.value.replace(regexp, ""); 

由於該屬性可以是任意長度,我需要我的正則表達式前進,直到新行。我認爲可以接受[。] * $以匹配任何字符到新行;但是,它似乎並不奏效。

任何幫助將不勝感激。

回答

2

.裏面一個字符類([])匹配自己 - 它不再是通配符。此外,正則表達式是區分大小寫除非另有說明(「我」國旗)和:(在這種情況下)並不特別,所以它不需要轉義。

[a-z]\w可能很好用來匹配屬性,具體取決於。

它可能然後去喜歡:

var catTitle = "color" 
var re = new RegExp(catTitle + ':[a-z]+$', "gi") 
re.test("Color:Green") // true 
re.test("color:Red") // true 
re.test("color: Red") // false, put perhaps this should be accepted? 
re.test("color:")  // false 
re.test("foo:bar")  // false 

我也改變了從預選賽到*+ - 注意的情況下,「顏色」以及它如何拒絕。這也會拒絕非英文字母的顏色。

快樂編碼。

+0

非常感謝您的回覆 - 我將其標記爲答案。一旦10分鐘結束。 – Dave 2011-06-12 19:42:40

+0

等待幾個小時(或更多),然後做出選擇:) – 2011-06-12 19:45:49

0

或者,因爲你可能有更多的線路:

var catTitle = 'Color'; 
var regexp = new RegExp(catTitle + ':.*', "g") 
alert("skzxjclzxkc\nsasxasxColor:Red\nasdasdasd".replace(regexp, ""));