添加点后每3个数字在所有的文本字段与JS
Add points after every 3 digits on all text fields with JS
基本上我想让JS检测数字和编辑任何输入的"text"块。
如果用户输入1000,脚本应该自动解析它并将其格式化为1.000。有什么具体的方法吗?
这可能有帮助http://www.mredkj.com/javascript/nfbasic.html
用于添加逗号,所以我将逗号更改为dot。
function addDots(nStr)
{
nStr += '';
x = nStr.split('.');
x1 = x[0];
x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /('d+)('d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + '.' + '$2'); // changed comma to dot here
}
return x1 + x2;
}
基本上你想在你的输入元素上使用onchange()
事件并格式化输入字符串。
<script type="text/javascript">
function addDecimalPoints(id) {
var inputElement = document.getElementById(id);
inputElement.value=inputElement.value.replace(/'D/g, '');
var inputValue = inputElement.value.replace('.', '').split("").reverse().join(""); // reverse
var newValue = '';
for (var i = 0; i < inputValue.length; i++) {
if (i % 3 == 0) {
newValue += '.';
}
newValue += inputValue[i];
}
inputElement.value = newValue.split("").reverse().join("");
}
</script>
我使用正则表达式,它为我工作:
function formatNumber(num) {
return num.toString().replace(/('d)(?=('d{3})+(?!'d))/g, '$1.')
}
完整示例见:https://blog.abelotech.com/posts/number-currency-formatting-javascript/
我使用这个简单的正则表达式与向前看value.replace(/'d(?=(?:'d{3})+$)/g, '$&.');
我建议你不要这样做。
无论你怎么做,这将是不愉快的,因为点的位置将取决于有多少字符已经键入和有多少尚未到来 -当他们键入10
时,你无法知道他们是否要输入另外两个数字。
无论如何要使用其他答案中显示的方法之一来更改字段,一旦用户完成编辑(即在onBlur
中),但不要在编辑时 !
不如这样做
let decimalPoints = id => {
let target = document.getElementById(id)
target.value = target.value.toLocaleString('en')
}
相关文章:
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 当设置addFromAutocompleteOnly时,剩余文本将保留在输入字段中
- 使用jquery将输入字段转换为文本
- 如何从查询字符串中的输入字段发回文本
- 表单输入字段随着溢出的文本而增长
- 使用单个文本框向多个字段添加严格搜索
- 使用javascript提交表单并从字段/单选框/复选框/文本区域获取数据
- 使用jQuery的输入字段文本换行
- 向使用jQuery加载DOM后添加的字段添加不受限制的文本输入DatePickers
- 当用户单击按钮(在光标位置)时,在输入字段中添加一个文本字符串
- 如何根据文本长度立即显示和隐藏字段?-JQuery
- 如何使文本、数字和日期html输入字段以一致的方式支持Ctrl+Z(撤消)
- 模拟文本输入字段上的退格键
- 输入字段中的可持续文本
- 未获取文本输入字段的值
- 没有文本安全性的密码字段
- 将禁用的输出字段更改为带前缀的文本
- 为什么 react 将输入[类型=“文本”] 字段设为只读,除非我提供 onChange 回调
- 使用SAPUI5中的“文本”字段显示正确的“日期”
- Kendo,如何将MVVM文本:字段绑定到远程DataSource