を使用して文字列から最初のゼロ値を削除:どのように私は5バックが使用していることを得ることができます私は例えば、padStart法(padLeft)を使用して文字列値を作成した正規表現
"5".padStart(19, "0")
「0000000000000000005」にもたらされる を正規表現? 私はこれをテストしました:
/^0*(\d+)$/.exec(d)[1]
これは正しく5を返します。
しかし、この正規表現は "00000012.22"
サンプルのようなもののためにnullを返す:> 11.22
5> 5
005> 5
0011.22 >>これが最初の問題です!
00100 >> 100
00.5 >> 1001 >> 001001 0.5これが第二の問題です!
コードを作業するが、正規表現なし:
function toDb(d) {
if (d == null) return null;
var precisionIndex = d.indexOf('.');
return d.toString().padStart((29 + precisionIndex + 1), '0');
}
function fromDb(d) {
if (d == null) return null;
d = d.replace(/^0+/, ''); // I'd like to use regex here
if (d.indexOf('.') == 0) // I'd like to use regex here
d = '0' + d; // I'd like to use regex here
return d;
}
fromDb(toDb( '0.5'))私にとっては0.5を返します。しかし私は私のコードで正規表現を使用したいと思います。
実際には、そのようなタスクに対処するための正規表現がありますが、それを本当に理解したいと思えば、それは非常に長く、むしろ不自由なものになります。 –