替换javascript中的括号
如何用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(/\)/,'
(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,'');