私はJavaScript/JQueryのメソッドをプログラミングしています。これはユーザーが入力ボックスに入力した値を変換します。意味は、この入力を地域に対応させることです。 機能には、最初にゼロを削除し、1000個のセパレータと小数点区切り文字を配置します。JavaScript:入力方法の書式設定が間違っています
このユースケースでは、,シンボル1000セパレータとです。ドットに小数点を付ける
たとえば、次のような入力を次のように変換します。
- 12300 => 12,300.00
- 100 => 100.00
- 1023.456 => 1,023.456
さて番号の問題、入力次たとえば100未満 が不正な形式であるが、まだあります:
- 1 => 1、.00
- 2。 05 => 0.05
- => 20 20、Iは入力ボックスに10進数の値を入力しない場合=> 0.65
0.00
コード:
$("#queryInstructedAmountFrom").change(function(){
var amount = $("#queryInstructedAmountFrom").val();
amount = removeZeros(amount);
var nonFractions = amount.match(/.{1,3}/g);
if(nonFractions == null) {
nonFractions = [];
nonFractions.push(amount);
}
var splittedValues = amount.split(/[,.]/);
amount = "";
if(splittedValues.length == 1) {
amount += splittedValues[0];
nonFractions = amount.match(/.{1,3}/g);
var firstIndex = amount.length % 3;
if(firstIndex != 0) {
var firstNumbers = amount.substr(0, firstIndex);
amount = amount.substr(firstIndex);
nonFractions = amount.match(/.{1,3}/g);
if(nonFractions == null) {
nonFractions = [];
nonFractions.push(amount);
}
amount = "";
amount += firstNumbers;
amount += thousandSeparator;
} else {
amount = "";
}
for(var i=0 ; i < nonFractions.length ; i++) {
amount += nonFractions[i];
if(i < (nonFractions.length - 1) && nonFractions.length != 1){
amount += thousandSeparator;
}
}
amount += decimalSeparator;
amount += "00";
} else {
for(var i=0 ; i < splittedValues.length - 1 ; i++) {
amount += splittedValues[i];
}
nonFractions = amount.match(/.{1,3}/g);
var firstIndex = amount.length % 3;
if(firstIndex == 0) {
nonFractions = amount.match(/.{1,3}/g);
}
if(firstIndex >= 1 && nonFractions != null) {
var firstNumbers = amount.substr(0, firstIndex);
amount = amount.substr(firstIndex);
nonFractions = amount.match(/.{1,3}/g);
if(nonFractions != null) {
amount = "";
amount += firstNumbers;
amount += thousandSeparator;
} else {
nonFractions = [];
nonFractions.push(amount);
}
} else {
amount = "";
}
for(var i=0 ; i < nonFractions.length ; i++) {
amount += nonFractions[i];
if(i < (nonFractions.length - 1) && nonFractions.length != 1){
amount += thousandSeparator;
}
}
amount += decimalSeparator;
amount += splittedValues[splittedValues.length -1];
}
$("#queryInstructedAmountFrom").val(amount);
});
});
function removeZeros(amount) {
while (amount.charAt(0) === '0') {
amount = amount.substr(1);
}
if(amount.length == 0){
amount = "0";
}
return amount;
}
間違って何をして起こっていますか?
我々はいくつかのコードが欠けていますか? 'removeZeros'の定義が表示されません – IrkenInvader
このコードはどんな場合でも動作しますが、追加します。 – Jonas
また、 'thousandSeparator'をお願いします。私たちはあなたのコードを実行してそれを修正することができます –