首页 > 代码库 > 对文本框的输入限制

对文本框的输入限制

以前经常在一些网站上注册,但是经常存在一些问题,比如你好不容易把一大堆注册的信息填写好了,然后点击提交,结果弹出个对话框,告诉你哪哪不对,或者说输入了非法字符,然后让你把写错的更改过来,这是好点的,不好的让你都重新写一遍,还有的因为用户名已经被注册,然后返回去让你重新填写用户名,然后原来的某些信息也得重新写一遍,这就特别烦人,我们可不能那么设计啊。

我觉得最好的办法,是在用户输入的时候,通过文本的change事件,只要输错了一个字符,就立即禁止继续输入,直到等到用户输入正确的信息为止,这样就能避免用户写完之后,如果出错了就得回去改一大堆的东西,很是心烦。下面介绍一下几种文本的输入限制方法,这里主要用到的是VB.NET,不过其它语言的,思路也都一样的。

只能输入数字(思路):遍历输入的文本的所有字符,将其转换为单精度浮点数single,如果转换失败,则说明输入的不是数字,捕捉错误,提示错误,代码如下

<span style="font-size:24px;">Public Class TextBoxManagement
    Function OnlyIntNumber(ByVal Content As String)
        Try
            Dim textContent As String<span style="white-space:pre">	</span>
            textContent = Convert.ToSingle(Content)<span style="white-space:pre">	</span>'执行转换为单精度浮点数
        Catch ex As Exception
            MsgBox("只能写数字")<span style="white-space:pre">	</span>'如果转换失败,则跳到这里
        End Try
        Return 0
    End Function
End Class</span>

只能输入汉字:利用Asc函数

<span style="font-size:24px;">Dim TextBoxContent As String = Asc("汉字")
        If TextBoxContent < 0 Then
            MsgBox("汉字")
        End If</span>

这里值得注意的,Asc是把字符转换成ASCII码,咱们可以查ASCII表,如果你这个函数里面写的ASCII里面的字符如“a、b、c”,那么转换出来的就是该字符对应的ASCII码,但是如果是汉字的话,说结果是汉字的ASCII码那是错误的,因为ASCII里面没有汉字,而且这个函数转换的是一个字节的字符,而汉字是两个字节,所以转换出来的并不是ASCII码,是个负数,这个结果大家可以上网查就如何得来的,我也不太清楚,但是可以通过xx算法把它转换成汉字的编码,这里不再赘述,只是利用了转换结果是负数来进行判断他是汉字,但是并非是绝对的,如果你要转换的字符是超过1个字节编码的字符,那就会得到负数,所以小小的知道这么一回事就行。

其它:还是通过Asc函数来判断,根据你的需要,把ASCII表拿过来,判断ASCII码的范围,就可以限制用户输入什么样的单字节字符了!额,怪了,其实对于数字的判断,我们貌似依然可以用ASCII来进行判断,呃好吧,回去试试吧!