我有这个字符串:
"This thing (123, 12) (2005.03 - 2011.12)"
我想将其转换为:
"This thing (2005.03 - 2011.12)"
含义删除两个第一个括号之间的文本:(123, 12)
。但是,只有在同一个字符串中有两个或更多个括号后面。所以像
"Another thing (2005.05 - 2011.08)"
应保持原样。 我怎么能用javascript做到这一点?
答案 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)