我使用JavaScript的Number.toLocaleString()将十进制数转换为我拥有的每个语言环境的百分比。根据区域设置,0.5等数字将转换为“50%”,“50%”或“%50”。
转换完成后用户选择其选项后,我需要将这些字符串转换回小数。 JavaScript为此目的使用parseFloat(),在前两种情况下可以正常但无法识别前面的百分比并为其返回NaN。
例如:
>> parseFloat("50%")
<- 50
>> parseFloat("50 %")
<- 50
>> parseFloat("%50")
<- NaN
有没有办法让转换适用于所有本地化百分比?我知道可以有其他方法在背景中隐藏正确的数字而不进行任何转换,但当时我对此并不感兴趣。
答案 0 :(得分:0)
如何做一些简单的事情,比如删除%?
>> parseFloat("%50".replace('%', ''));
<- 50
这适用于任何提到的格式。
答案 1 :(得分:0)
我不建议对本地化文本进行任何字符串操作,它们只应用于显示目的。
您需要保留预先本地化的值,许多html元素可以显示本地化文本,并具有用于保留基础值的值属性。例如,如果您正在使用&#34;请选择&#34;:
<select>
<option value="0.5">50 %</option>
<option value="1">100 %</option>
<option value="1.5">150 %</option>
...
</select>