【项目经验】文本验证

       最近做的功能将一个cs的工具改写成Bs页面形式的嵌到系统中。因为做的过程中有很多改动,很多时候就有问题就找组内技术牛请教,和组长了解需求,收获了不少,这篇博客就是当总结了。

1.文本验证

 1.1 限制文本只能输入字母数字下划线,且只能以字母开头

       背景介绍:前台用的textbox是自己封装的控件,有好多文本框的属性事件都没有封装进去,所以加验证的时候,请教了封装的技术牛,就给了一句话:“你再找个别的办法去验证吧~~”,然后就开始了手机流量刷刷刷的节奏(PS:公司没外网,一台公用上网机器).
    正则表达式就很好的解决了这个问题。

代码:
    给要验证的文本框加上onblur事件,当文本框失去焦点的时候就会触发JS,从而去验证输入是否符合条件。

    <asp:AdvTextBox ID="txtFieldName" runat="server" AttrName="字段名称" CssClass="nTxt"
       Height="19px" InputType="NumAndStr" MaxLength="20" NotNull="true" Width="203px" 
       onblur="return CheckFieldname();">
     </asp:AdvTextBox>

JS:
    在JS中,我们首先要获取的文本框的值,才能去判断输入的合法性,封装的AdvTextBox属于服务器端控件,所以取值的时候不像一般的textbox那样。

TextBox取值:
<strong style="font-size:18px;">  </strong><span style="font-size:18px;">  </span><span style="font-size:24px;">   document.getElementById("userName").value</span>

AdvTextBox取值:
<span style="font-size:24px;">   document.getElementById('<%=userName.ClientID%>').value</span>

具体JS写法:
        function Checkname()
         {
          //服务端控件的取值方式
            var str = document.getElementById('<%= txtTableName.ClientID %>').value
            var reg = /^[a-zA-Z\u4e00-\u9fa5][a-zA-Z0-9_\u4E00-\u9FA5]{2,20}$/;
            if (!reg.test(str)) 
            {
                alert("表名只能由3-20个字母数字下划线组成,且只能以字母开头!");
                return;
            }
        }

 1.2限制文本只能输入汉字

 直接给需要验证的文本框加上一个onkeyup事件,在键盘按键被松开时生效
代码:
   <asp:AdvTextBox ID="txtCNFieldName" runat="server" AttrName="字段中文名称" CssClass="nTxt"Height="19px" 
       InputType="String" MaxLength="20" NotNull="true" Width="204px" 
       onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')">
   </asp:AdvTextBox>


总结:,虚心请教,充实自己!


       

你可能感兴趣的:(【项目经验】文本验证)