単純な、正規表現グループの使用:
var string = "39,43433,-7,2232"
string.replace(/([-\d]+),(\d+)(,)([-\d]+),(\d+)/g, "$1" + '.' + "$2$3$4" + '.' + "$5")
これは、グループを使用して文字列の再連結を行い、文字列の分割や配列の結合よりも高速です。しかし、オブジェクト指向の人であれば、ECMA-Script5を使用するとさらに簡単で読みやすくなります。
string.match(/(-?\d+)\,(-?\d+)/g).
map(function(e) { return e.replace(/,/, '.'); }).
join(',')
注意:ブラウザー間の互換性を維持するには、ECMAScript5をサポートしていないブラウザー用にマップをインストールする必要があります。これをコードに追加することでそれを行うことができます
if (!('map' in Array.prototype)) {
Array.prototype.map= function(mapper, that /*opt*/) {
var other= new Array(this.length);
for (var i= 0, n= this.length; i<n; i++)
if (i in this)
other[i]= mapper.call(that, this[i], i, this);
return other;
};
}