删除两个括号之间的文本,如果有两个括号

时间:2016-12-14 13:15:30

标签: javascript regex

我有这个字符串:

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

我想将其转换为:

"This thing (2005.03 - 2011.12)"

含义删除两个第一个括号之间的文本:(123, 12)。但是,只有在同一个字符串中有两个或更多个括号后面。所以像

这样的字符串

"Another thing (2005.05 - 2011.08)"

应保持原样。 我怎么能用javascript做到这一点?

2 个答案:

答案 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,'('));

答案 1 :(得分: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)