Bank slips: Pick value correctly by the digitable line

Asked

Viewed 776 times

1

I need to capture the correct amount of bank notes through the digit line, but I’m not getting.

Here’s how I do:

var linha = "34191.75009 01544.841545 78554.760005 4 25230000093423";

var valor = linha.substring(45,54).replace(/^0+/, ''); // Retira todos os zeros à esquerda

var valor_final = valor.substring(0,3) + "," + valor.substring(4,5); // 934,23

So far so good, but if the value is less than 100 or greater than 999, how to capture correctly?

Is there any other way to correctly capture the left part of the comma independent of number of houses?

1 answer

2


You can do it like this:

var linha = "34191.75009 01544.841545 78554.760005 4 25230000000883";

var valor = parseFloat(linha.substring(linha.length - 10, linha.length)).toString() // uso parseFloat parar retirar os zeros e toString para converter novamente em string

if (valor.length == 2) { // verifica se linha tem apenas 2 caracteres
  var valor_final = "0," + valor; // coloca o zero na frente
}else if (valor.length == 1) { // verifica se linha tem apenas 1 caractere
  var valor_final = "0,0" + valor; // coloca o 0,0 na frente
} else { 
  // qualquer outro valor ganha a mesma formatação
  var valor_final = valor.substring(0, valor.length -2) + "," + valor.substring(valor.length -2, valor.length);
}

console.log(valor_final)

Browser other questions tagged

You are not signed in. Login or sign up in order to post.