2013-10-07 155 views
0

如何用javascript替換括號。在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(/\)/,''); 
+2

那些被稱爲括號,僅供參考。無論如何,你有什麼嘗試? –

+4

@RohitJain:「括號」(最後的「es」),複數形式。一個括號,兩個括號。 –

+0

@ T.J.Crowder hehe。我經常得到那些錯誤:) –

回答

1

你可以試試這個(只匹配浮點數):

var s = '(14.233,72.456),(12.4566,45.345),(12.456,13.567)'; 
bounds = s.match(/\d+\.\d+,\d+\.\d+/g).join('#'); 

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('#'); 
2

脹裂用分隔符串起來,並用新的分隔符將它們加入:

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, '#'); 
+1

不應該是子字符串中的'data.length-1'嗎? –

+0

Rohit是正確的,你不能得到正確的值與data.length-2 – Anup

+0

我只需要'.slice(1,-1)':-)確實,'-2'必須與'substr ',而不是'substring'。 – Bergi

-2

可以使用.replace( 「(」, 「」).replace( 「)」, 「」);

0
var string = "(14.233,72.456),(12.4566,45.345),(12.456,13.567)"; 
var str = string.substring(1, string.length-1).split('),(').join('#'); 

alert(str); 
0

試試看s,這是幾乎相同的代碼:

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

看到這裏的代碼工作:http://jsfiddle.net/K8ECj/

[編輯,以消除捕獲]

+0

什麼是捕獲組? – Bergi

+0

@Bergi - 改變了答案,謝謝(我試着用別的東西替換括號來進行測試......) – leoinfo