替换javascript中的括号

替换javascript中的括号,javascript,regex,string,Javascript,Regex,String,如何用javascript替换括号 我有这样一种格式: (14.233,72.456),(12.4566,45.345),(12.456,13.567) 如何获得如下所示的格式: 14.233,72.456#12.4566,45.345#12.456,13.567 我尝试了以下方法: bounds = bounds.replace(/\)\,\(/g,'#'); bounds = bounds.replace(/\(/g,''); bounds = bounds.replace(/\)/,'

如何用javascript替换括号

我有这样一种格式:

(14.233,72.456),(12.4566,45.345),(12.456,13.567)
如何获得如下所示的格式:

14.233,72.456#12.4566,45.345#12.456,13.567
我尝试了以下方法:

bounds = bounds.replace(/\)\,\(/g,'#');
bounds = bounds.replace(/\(/g,'');
bounds = bounds.replace(/\)/,'');

按分隔符拆分字符串并将其与新分隔符连接:

var data = "(14.233,72.456),(12.4566,45.345),(12.456,13.567)";
data = data.slice(1, -1).split('),(').join('#');
或使用正则表达式:

var data = "(14.233,72.456),(12.4566,45.345),(12.456,13.567)";
data = data.slice(1, -1).replace(/\),\(/g, '#');
您可以使用.replace(“(”,”).replace(“),”)

您可以尝试以下方法(仅匹配浮点数):

s.match(/\d+\.\d+,\d+\.\d+/g)
返回:

['14.233,72.456', '12.4566,45.345', '12.456,13.567']
此外,您可能需要处理空字符串:

bounds = (s.match(/\d+\.\d+,\d+\.\d+/g) || []).join('#');

试试这个,它与您的代码几乎相同:

bounds = bounds.replace(/\),\(/g,'#').replace(/^\(|\)$/g,'');
请参见此处的工作代码:


[编辑以消除捕获]

这些被称为括号,仅供参考。不管怎样,你试过什么?@RohitJain:“括号”(“es”结尾),复数形式。一个括号,两个括号。@T.J.Crowder-hehe。我经常犯错误:)你的代码很好,做了你想做的事-你的问题是什么?那不应该是
数据吗?子字符串中的length-1
?Rohit是对的,你不能用数据得到正确的值。length-2I只需使用
。slice(1,-1)
:-)事实上,
-2
必须与
子字符串一起使用,不是
子字符串
@RohitJain谢谢,愚蠢的错误。伯吉,也谢谢你,忘了
.slice
;)捕获组是干什么的?@Bergi-更改了答案,谢谢(为了测试,我尝试先用其他东西替换括号…)
bounds = (s.match(/\d+\.\d+,\d+\.\d+/g) || []).join('#');
bounds = bounds.replace(/\),\(/g,'#').replace(/^\(|\)$/g,'');