2016-12-14 143 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)

相关问题