Javascript 文本框仅允许数字和逗号

Javascript 文本框仅允许数字和逗号,javascript,asp.net,css,Javascript,Asp.net,Css,我有一个文本框,我需要让用户只输入金额,这意味着只有数字和逗号 这是我的 <asp:TextBox ID="txt_tutar" runat="server" onkeypress="this.value=this.value.replace(/\D/g,'')"></asp:TextBox> 上面的代码只允许数字,它删除了逗号。如何更新以允许用户在文本框中输入浮点数?使用此正则表达式: /[^\d,]/g 例如: this.value=this.value.r

我有一个文本框,我需要让用户只输入金额,这意味着只有数字和逗号

这是我的

 <asp:TextBox ID="txt_tutar" runat="server" onkeypress="this.value=this.value.replace(/\D/g,'')"></asp:TextBox>


上面的代码只允许数字,它删除了逗号。如何更新以允许用户在文本框中输入浮点数?

使用此正则表达式:

/[^\d,]/g
例如:

this.value=this.value.replace(/[^\d,]/g,'')

当然,这并不意味着字符串将是一个有效的数值;e、 g.
2,0,1将被视为罚款。您真的应该使用或类似的工具来执行完整的服务器端验证。在这里,您还可以使用必需的字段验证器来执行验证

为了提高性能,在客户端使用javascript的更好方法是使用下面的脚本

function isValidNo(str) {
            var inbadChars = "\t\n\r^&*=~`';<>?[]{}abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
            //debugger;
            for (n = 0; n < str.length; n++) //filter for invalid chars
            {
                if (inbadChars.indexOf(str.charAt(n)) != -1) return false;
            }
            return true;
        }
函数isValidNo(str){
var inbadChars=“\t\n\r^&*=~`';?[]{}abcdefghijklmnopqrstuvxyzabefghijklmnopqrstuvxyz”;
//调试器;
for(n=0;n

建议也使用服务器端tryparse,因为在某些浏览器上,Scrippets有时可能无法工作。

我可以在客户端执行此操作吗?您可能可以,但一般来说,您应该对任何用户输入使用服务器端验证。不能保证您的客户机将使用javascript或尊重客户机上的验证。当然,恶意用户总是可以通过原始HTTP请求发布他们想要的任何内容,这使得客户端验证毫无意义。