fix: numeric mode

This commit is contained in:
mrhso 2023-12-02 16:26:02 +08:00
parent d8da67ac15
commit 27a463b88f
2 changed files with 8 additions and 8 deletions

View file

@ -1232,20 +1232,20 @@ function generateDataBlocks(){
if(k == Math.floor((data_length + 2) / 3) - 1){
if(data_length % 3 == 0){
temp_value = data_block.substring(0,10);
temp_decoded = parseInt(data_block.substring(0,10), 2);
temp_decoded = parseInt(data_block.substring(0,10), 2).toString().padStart(3, "0");
data_block = data_block.substring(10);
} else if(data_length % 3 == 1){
temp_value = data_block.substring(0,4);
temp_decoded = parseInt(data_block.substring(0,4), 2);
temp_decoded = parseInt(data_block.substring(0,4), 2).toString();
data_block = data_block.substring(4);
} else {
temp_value = data_block.substring(0,7);
temp_decoded = parseInt(data_block.substring(0,7), 2);
temp_decoded = parseInt(data_block.substring(0,7), 2).toString().padStart(2, "0");
data_block = data_block.substring(7);
}
} else {
temp_value = data_block.substring(0,10);
temp_decoded = parseInt(data_block.substring(0,10), 2);
temp_decoded = parseInt(data_block.substring(0,10), 2).toString().padStart(3, "0");
data_block = data_block.substring(10);
}

View file

@ -913,20 +913,20 @@ function QRDecode(data){
for(var i=0; i < Math.floor((length + 2) / 3); i++){
if(i == Math.floor((length + 2) / 3) - 1){
if(length % 3 == 0){
num += parseInt(data_bits.substring(0,10), 2);
num += parseInt(data_bits.substring(0,10), 2).toString().padStart(3, "0");
temp_data += data_bits.substring(0,10);
data_bits = data_bits.substring(10);
} else if(length % 3 == 1){
num += parseInt(data_bits.substring(0,4), 2);
num += parseInt(data_bits.substring(0,4), 2).toString();
temp_data += data_bits.substring(0,4);
data_bits = data_bits.substring(4);
} else {
num += parseInt(data_bits.substring(0,7), 2);
num += parseInt(data_bits.substring(0,7), 2).toString().padStart(2, "0");
temp_data += data_bits.substring(0,7);
data_bits = data_bits.substring(7);
}
} else {
num += parseInt(data_bits.substring(0,10), 2);
num += parseInt(data_bits.substring(0,10), 2).toString().padStart(3, "0");
temp_data += data_bits.substring(0,10);
data_bits = data_bits.substring(10);
}