如何“屏蔽”输入以显示巴西货币

Eib*_*Web 4 html javascript

我需要一个输入范围来显示巴西货币格式的值。从逻辑上讲,在一个函数中接收这个数字就足够了,该函数将对其进行格式化,然后返回格式化的值。但这是Javascript,我找不到让它工作的方法。

function converter(valor){
  var numero = (valor).toLocaleString('pt-BR');
  document.getElementById('valor').value = 'R$ '+numero;
}
Run Code Online (Sandbox Code Playgroud)
<input type="range" min="0" max="4000.00" value="2000.00" step="0.01" style="width:100%" oninput="converter(this.value)">
<p>
<input type="text" name="valor" value="R$ 0,00" id="valor">
Run Code Online (Sandbox Code Playgroud)

Cal*_*nes 7

您可以使用第二个参数,toLocaleString()即样式options参数,您可以在其中设置货币,因此您甚至不需要使用连接,因为它会在调用"R$"时准备就绪。toLocaleString

请注意,它当前不适用于您,因为toLocaleString()它是 javascript 的一部分Number.prototype,并且您拥有的参数valor是一个字符串,因此如果您不将字符串解析为数字,它将无法工作。

见下文。

function converter(valor){
  var numero = parseFloat(valor).toLocaleString('pt-BR',{ style: 'currency', currency: 'BRL' });
  document.getElementById('valor').value = numero;
}
Run Code Online (Sandbox Code Playgroud)
<input type="range" min="0" max="4000.00" value="2000.00" step="0.01" style="width:100%" oninput="converter(this.value)">
<p>
<input type="text" name="valor" value="R$ 0,00" id="valor">
Run Code Online (Sandbox Code Playgroud)

进一步阅读: https: //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString