以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 限制中文输入 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=43789) |
-- 作者:xvkewen -- 发布时间:2013/12/15 15:45:00 -- 限制中文输入 我想SRS列里只能输入字母,数字和符号"-",当我直接输入中文的时候可以得到提示,但当我中英文混输的时候,却没有提示且被正常录入了,为什么?validateEdit事件的代码如下: If e.Col.name = "SRS_No" Then Dim s2 As String = e.text If s2 <> "" Then If Asc(s2) > 47 And Asc(s2) < 58 OrElse Asc(s2) > 64 And Asc(s2) < 91 OrElse Asc(s2) > 96 And Asc(s2) < 123 OrElse Asc(s2) = 45 Then e.Cancel = False Else msgbox("您输入的办单号含有非法字符,请重新输入!" & Chr(13) & Chr(10) & "办单号只能包含字母,数字和符号""-""") e.Cancel = True End If End If End If |
-- 作者:lsy -- 发布时间:2013/12/15 16:11:00 -- 做文本文件数据对齐的时候,我用的判断是: If Asc(s2) < 0 Then \'汉字或全角字符。
End If |
-- 作者:有点甜 -- 发布时间:2013/12/15 19:41:00 -- 方法一:把代码设置到datacolchanged里,相应的改一下代码便可。 方法二:设置列的掩码。http://www.foxtable.com/help/topics/0047.htm
|
-- 作者:xvkewen -- 发布时间:2013/12/15 20:21:00 -- 我是for each对输入的字符逐个判断,是不是笨了点? |
-- 作者:有点甜 -- 发布时间:2013/12/15 20:45:00 -- validateEdit 或者 datacolchanged,就是要fox each去一个一个判断的。 你或者可以用正则表达式去判断。 如果每输入一个,就检测一下的话,建议用keypressEdit去判断。
|
-- 作者:有点甜 -- 发布时间:2013/12/15 20:49:00 -- 正则的用法 Dim data As String = "13AA343" Dim reg As new System.Text.RegularExpressions.Regex("^[0-9a-zA-Z]+$") Dim result As Boolean = reg.IsMatch(data) msgbox(result) |