只允许输入 1234567890和-,在 .net中可以用控件实现吗??

解决方案 »

  1.   

    RegularExpressionValidator 控件使用 RegularExpressionValidator 控件可测试 TextBox 或 SelectionList 控件中的数据值是否与正则表达式匹配。需要将 RegularExpressionValidator 控件的 ControlToValidate 设置为要验证的 TextBox 或 SelectionList 控件的 ID。RegularExpressionValidator 控件通过将数据值与在其 ValidationExpression 属性中指定的正则表达式模式相比较来执行其验证功能。有关使用与 ValidationExpression 属性关联的“正则表达式编辑器”对话框的信息,请参见添加和配置 RegularExpressionValidator 控件。如果 ControlToValidate 指定的控件中的数据值与 ValidationExpression 属性中的正则表达式不匹配,则 RegularExpressionValidator 控件将显示在其 ErrorMessage 属性中包含的字符串。当将 RegularExpressionValidator 控件添加到容器控件或模板中时: ErrorMessage 属性设置为 RegularExpressionValidator。 
    StyleReference 属性设置为 error,默认情况下它映射到预定义样式。 
      

  2.   

    此示例显示一个用于输入邮政编码的文本框,并使用 RegularExpressionValidator 控件通过使用正则表达式 "^\d{5}$" 确保输入的值是一个 5 位值。
    [Visual Basic]
    <%@ Page Inherits=
       "System.Web.UI.MobileControls.MobilePage" Language="VB" %>
    <%@ Register TagPrefix="mobile"
        Namespace="System.Web.UI.MobileControls"
        Assembly="System.Web.Mobile" %><script language="vb" runat="server">Protected Sub Submit_Click(sender As Object, e As EventArgs)
       If Page.IsValid Then
          ActiveForm = Form2
       End If
    End Sub</script><mobile:Form id="Form1" runat="server">
       <mobile:Label runat="server">
          Please enter a ZIP code
       </mobile:Label>   <mobile:TextBox id="zip" runat="server"/>   <mobile:RegularExpressionValidator ControlToValidate="zip"
          ValidationExpression="^\d{5}$"
          runat="server">
          Invalid ZIP code
       </mobile:RegularExpressionValidator>   <mobile:Command runat="server" OnClick="Submit_Click">
          Submit
       </mobile:Command></mobile:Form><mobile:Form id="Form2" runat="server">
       <mobile:Label runat="server">ZIP code is submitted</mobile:Label>
    </mobile:Form>
      

  3.   

    <ASP:RegularExpressionValidator id="Validator_ID" RunAt="Server"
    ControlToValidate="要验证控件名"
    ValidationExpression="正则表达式"
    errorMessage="错误信息"
    display="Static"
    ></ASP:RegularExpressionValidator>
      

  4.   

    <body MS_POSITIONING="FlowLayout">
    <form id="Form1" method="post" runat="server">
    <P>
    <asp:button id="Button1" runat="server" Text="Button"></asp:button>
    <asp:Label id="Label1" runat="server">Label</asp:Label><INPUT type="button" value="Button"></P>
    <P>
    <asp:TextBox id="TextBox1" runat="server" TextMode="MultiLine" Rows="10" Columns="50"></asp:TextBox>
    <asp:Button id="Button2" runat="server" Text="Button"></asp:Button>
    <asp:RegularExpressionValidator id="RegularExpressionValidator1" runat="server" ErrorMessage="只能输入数字和下划线,且长度>=5 and <=20"
    ControlToValidate="TextBox1" ValidationExpression="[\d_]{5,20}"></asp:RegularExpressionValidator>
    <asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ErrorMessage="请填写内容" ControlToValidate="TextBox1"></asp:RequiredFieldValidator></P>
    <P><FONT face="宋体"></FONT>&nbsp;</P>
    </form>
    </body>
      

  5.   

    /*
    IsFloat(string,string,int or string):(测试字符串,+ or - or empty,empty or 0)
    功能:判断是否为浮点数、正浮点数、负浮点数、正浮点数+0、负浮点数+0
    */function IsFloat(objStr,sign,zero)
    {
        var reg;    
        var bolzero;    
        
        if(Trim(objStr)=="")
        {
            return false;
        }
        else
        {
            objStr=objStr.toString();
        }    
        
        if((sign==null)||(Trim(sign)==""))
        {
            sign="+-";
        }
        
        if((zero==null)||(Trim(zero)==""))
        {
            bolzero=false;
        }
        else
        {
            zero=zero.toString();
            if(zero=="0")
            {
                bolzero=true;
            }
            else
            {
                alert("检查是否包含0参数,只可为(空、0)");
            }
        }
        
        switch(sign)
        {
            case "+-":
                //浮点数
                reg=/^((-?|\+?)\d+)(\.\d+)?$/;
                break;
            case "+": 
                if(!bolzero)           
                {
                    //正浮点数
                    reg=/^\+?(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
                }
                else
                {
                    //正浮点数+0
                    reg=/^\+?\d+(\.\d+)?$/;
                }
                break;
            case "-":
                if(!bolzero)
                {
                    //负浮点数
                    reg=/^-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
                }
                else
                {
                    //负浮点数+0
                    reg=/^((-\d+(\.\d+)?)|(0+(\.0+)?))$/;
                }            
                break;
            default:
                alert("检查符号参数,只可为(空、+、-)");
                return false;
                break;
        }
        
        var r=objStr.match(reg);
        if(r==null)
        {
            return false;
        }
        else
        {        
            return true;     
        }
    }
      

  6.   

    只允许输入中文和英文,其他别的字符都不允许,在.net可以用控件实现吗?? 
    谁能帮我就上面的问题写一下啊!!谢谢了!!