逗号的空格分隔符 INSTEAD - 大量输出

Sht*_*ley 2 html javascript jquery

你会在我的form标签中看到,我toLocaleString习惯于在我的最终输出中放置一个分隔符。但是我想要一个空格而不是逗号。我怎样才能做到这一点?

现在,第三个输出中有一个逗号。但理想情况下,我希望所有三个输出中都有一个空格,以使大数字更具可读性。

示例:“5 000”、“400 000”等。

<form 
  oninput="loanval.value=loan.value; 
           periodval.value=period.value; 
           paymentval.value=Math.floor(loan.value / period.value).toLocaleString()">
  <label>Loan Amount</label>
  <input type="range" id="loan" name="loan" min="5000" max="400000" step="5000">
  <output name="loanval" for="loan">0</output>
  <label>Loan Period</label>
  <input type="range" id="period" name="period" min="1" max="15">
  <output name="periodval" for="period">0</output>
  <label>Your monthly repayment will be:</label>
  <output name="paymentval">0</output>
</form>
Run Code Online (Sandbox Code Playgroud)

Vot*_*ple 6

.toLocaleString()函数的重点是它根据区域设置(和十万个分隔符等)选择正确的千位和十进制分隔符,因此没有选项可以明确地说“我想为这个分隔符使用一个空格,请。”

如果您绝对确定您的网站只会在使用句点作为小数点分隔符的区域设置中运行,您可以这样做 .toLocaleString('en-US').replace(',', ' ') 

也就是说,强制它使用en-USwhich 使用逗号表示千位,使用句点表示小数,然后手动替换逗号。这不是很优雅,但是我认为删除语言环境的标准/可识别千位分隔符以使数字“更具可读性”的整个想法本身并不是很优雅。

  • 我认为您不想使用 `.replace(',', ' ')` 因为它只会找到第一个实例。您可以使用新的 `.replaceAll(',', ' ')` 或正则表达式来替换所有实例 (3认同)