0

ゼロではないもの、主に文字や句読点をパディングする方法を考えています。

私は、Excelで使用するためにcsvファイルにエクスポートできるレポートを(データベース内の情報に基づいて)作成するデータベースを使用しています。データベースとExcelの両方が、私たちが持っている数字から先行ゼロを削除していることに気づきました(すべてのレポートにあるものの1つは、7桁のID番号であり、多くの場合、0123456や0012345のように先頭にゼロがあります)。

データベースではjavascriptを使用して計算列を使用できるため、このWebサイトで見つけた情報に基づいて、計算列を作成し、数値をゼロで埋めるスクリプトを追加しました。これにより、データベースでは修正されますが、Excelでは修正されません。私がやりたいのは、ゼロだけでなくアポストロフィで埋めることです。そのため、Excelにエクスポートすると、 '0123456と表示され、Excelに先行ゼロを保持させる必要があります(私が見つけたさまざまなExcelチュートリアルによると、番号の前のアポストロフィは、それをテキストに切り替えます)。

これまでのところ、私のプログラムで機能した先行ゼロを追加する2つの方法は次のとおりです。

var x=PersonID;
var y="0000000";
(y + x).slice(-7);

ここで、PersonIDはIDのファイルをプルアップします

また

var str =PersonID;
var pad ="0000000";
(pad+str).slice(-7)

また

var n=PersonID;
("000000" + n).slice(-7);

ただし、「0000000」を「'0000000」または「\'0000000」(および-7から-8)に切り替えると、ゼロが追加されます。アポストロフィの問題だと思って「A0000000」を試しましたが、Aがさらにゼロに切り替わりました。数値以外の情報で数値を埋める方法はありますか?

申し訳ありませんが、これは少し長いです、私は自分の状況に関するすべての情報を提供したかっただけです。これに対する解決策を知っている人に事前に感謝します:)

4

3 に答える 3

0

スライスすると、先頭の「A」または「'」を含む前の文字が削除されるためだと思います。これを試して:

var str =PersonID;
var pad ="0000000";
"A" + (pad+str).slice(-7)
于 2013-03-20T16:31:06.887 に答える
0

パッドの前に文字を配置すると、ID がおそらく少なくとも 1 文字の長さであるため、必然的に削除されます。

var id = "A0000000123"
id.slice(-7); //id = 0000123

0 以外でパディングしたい場合は、それを「パディング」値にします。

var pad = "AAAAAAA";
var n = pad + PersonID; //123
var paddedId = n.slice(-7) //paddedId = "AAAA123"

おそらく、本当に必要なのは、パッドから最後の N 文字ではなく、最初の N 文字を取得することです。

var pad = "A000000";
var PersonID = "123";
var toTake = pad.length - PersonID.length; //number of characters to take for the pad
var paddedId = pad.slice(0,toTake) + PersonID;// "A000123"
于 2013-03-20T16:32:31.993 に答える