作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的代码的简化版:
$("#annual_sales").on('keyup', function () {
$(this).val( $(this).val().replace(/(\d{3})/g, "$1,") );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="annual_sales" type="text" />
我试图在每 3 位数字后添加一个逗号。
The patterns works well here ,但如您所见(在上面的代码片段中),它在 JS 中不起作用。知道出了什么问题吗?
最佳答案
在您当前的模式 (\d{3})
中,您在匹配 3 位数字之后添加一个逗号,并且当 3 位数字后面已经有一个逗号时。
您可能会使用负数 lookahead 匹配 3 位数字(?!,)
断言后面的不是逗号:
$("#annual_sales").on('keyup', function() {
$(this).val($(this).val().replace(/(\d{3}(?!,))/g, "$1,"));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="annual_sales" type="text" />
如果你不想在行尾使用逗号,你可以在否定前瞻中使用一个交替,断言后面的内容既不是逗号也不是行尾 (\d{3}( ?!,|$))
$("#annual_sales").on('keyup', function() {
$(this).val($(this).val().replace(/(\d{3}(?!,|$))/g, "$1,"));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="annual_sales" type="text" />
关于javascript - 如何在每 3 位数字后添加一个逗号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51044838/
我是一名优秀的程序员,十分优秀!