gpt4 book ai didi

javascript - JavaScript 上的正则表达式仅接受小数点后 2 位的数字

转载 作者:行者123 更新时间:2023-12-03 11:41:17 28 4
gpt4 key购买 nike

我正在尝试在 JavaScript + ASP.NET Web 表单中执行正则表达式,以验证文本框是否只接受正十进制数,最多 18 位数字和 2 位小数。

                <script type="text/javascript">
$(document).ready(function (e) {
$("#<%=txtQtt.ClientID%>").bind('keypress', function (event) {
var regex = new RegExp("^[0-9]{1,18}(?:\.[0-9]{0,2})?$");
var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
if (!regex.test(key)) {
event.preventDefault();
return false;
}
});
});
</script>
<span class="label100">Quantity:</span>
<asp:TextBox ID="txtQtt" runat="server" CssClass="txt200" MaxLength="20"></asp:TextBox>

代码“有效”(它只接受数字),但不允许我输入一个点,我希望他只接受仅一个点。

我做错了什么?

最佳答案

您需要在 RegExp 对象中使用 \\.:

var regex = new RegExp("^[0-9]{1,18}(?:\\.[0-9]{1,2})?$");

或者您可以使用正则表达式文字:

var regex = /^[0-9]{1,18}(?:\.[0-9]{1,2})?$/

另外最好在小数点后使用 [0-9]{1,2} 而不是 [0-9]{0,2} 否则它也会允许 123. 作为有效数字,

关于javascript - JavaScript 上的正则表达式仅接受小数点后 2 位的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26260158/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com