2016-12-14 168 views
-6

我有這個字符串:2個括號之間刪除文本,如果兩個括號

"This thing (123, 12) (2005.03 - 2011.12)"

我想將其轉換爲:

"This thing (2005.03 - 2011.12)"

含義兩個第一括號之間刪除文本:(123, 12)。但是,只有在同一個字符串中有兩個或多個括號。因此,像

"Another thing (2005.05 - 2011.08)"

一個字符串,則應該保持原樣。 我該如何用javascript做到這一點?

+0

你的問題是不明確的,但。 但就我而言,你可以首先將所有的字符串轉換爲字符數組,並計數我有數大於四的那麼你可以使用第一個括號的索引從那個字符串中找到下一個。 –

+0

@JaromandaX無效的正則表達式標誌錯誤。 – user1665355

+0

正則表達式是正確的(不是最好的答案) - 問題是如何正則表達式如何出現在評論由於\字符 - –

回答

2

您可以使用與string.replace()的正則表達式這樣https://regex101.com/r/X7ioxu/1

var regex = /(\(.+?\))\s?\(/g; 
var str1 = "This thing (123, 12) (2005.03 - 2011.12)"; 
var str1 = "This thing (2005.03 - 2011.12)"; 

alert(str1.replace(regex,'(')); 
alert(str2.replace(regex,'(')); 
+0

偉大的答案,如果我不想匹配,如果有兩個數字和大括號內的數字? – user1665355

+0

我不知道如果我讓你對。請舉例,如輸入和輸出? – MadDocNC

1

隨着給出的數據,這個工程

var str = "This thing (123, 12) (2005.03 - 2011.12)"; 
 

 

 
var parts = str.split(/(?=\()/g); // split on (with lookahead 
 
if (parts.length==3) parts.splice(1,1) 
 
str = parts.join("") 
 
console.log(str)