代码之家  ›  专栏  ›  技术社区  ›  Abe Miessler

验证货币输入的最佳方法?

  •  6
  • Abe Miessler  · 技术社区  · 14 年前

    我已经创建了文本框和比较器验证器,我认为下面允许以以下形式输入:

    • 5美元

    不幸的是,它不允许有美元签名的版本。如果你不允许美元符号,对货币进行类型检查有什么意义?有没有办法允许这个符号?

                <asp:TextBox ID="tb_CostShare" runat="server" Text='<%# Eval("CostShare", "{0:$0.00}")%>' CausesValidation="true" />
                <asp:CompareValidator   ID="vld_CostShare" 
                                        runat="server" 
                                        ControlToValidate="tb_CostShare" 
                                        Operator="DataTypeCheck" 
                                        Type="Currency" 
                                        ValidationGroup="vld" 
                                        ErrorMessage="You must enter a dollar amount for 'Cost Share'." />    
    
    2 回复  |  直到 14 年前
        1
  •  8
  •   Alex Peck    14 年前

    比较器不支持货币符号。您可以在输入控件前面加上$或使用正则表达式验证器, this 佩奇举了一个例子。

    以下模式将与您的示例相匹配(由 http://www.regexlib.com ):

    ^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(.[0-9][0-9])?$
    
        2
  •  1
  •   user323678    14 年前

    另外,您可以编写一个自定义验证器来解析字符串,无论有没有$。但是您需要编写一些JavaScript来获得任何客户端验证。