发明内容
本发明实施例所要解决的技术问题在于,提供一种输入字符控制方法和系统。可彻底解决对MaskedTextBox输入项字符输入范围的限定和控制较为困难及复杂的问题。
为了解决上述技术问题,本发明实施例提供了一种输入字符控制方法,包括:
接收字符输入指令,所述字符输入指令包括输入字符;
根据所述输入字符所属控制区域以及预设的正则表达式判断所述输入字符是否满足输入要求,若判断为是,则保存所述输入字符。
其中,在所述接收字符输入指令的步骤之后,所述方法还包括:
判断所述输入字符是否为合法的字符类型;
若判断为是,则执行所述根据所述输入字符所属控制区域以及预设的正则表达式判断所述输入字符是否满足输入要求的步骤。
其中,在所述根据所述输入字符所属控制区域以及预设的正则表达式判断所述输入字符是否满足输入要求的步骤之前,所述方法还包括:
通过字符串集合编辑器接收正则表达式输入,并将接收的正则表达式作为预设的正则表达式保存。
其中,所述控制区域包括时区域、分区域和秒区域,所述输入字符的合法字符类型为数字。
其中,所述接收字符输入指令的步骤包括:
截获MaskedTextBox控件的KeyDown消息或者KeyPress消息,接收字符输入指令。
相应地,本发明实施例还提供了一种输入字符控制系统,包括:
输入指令获取模块,用于接收字符输入指令,所述字符输入指令包括输入字符;
第一判断模块,用于根据所述输入字符所属控制区域以及预设的正则表达式判断所述输入字符是否满足输入要求;
字符更新模块,用于在所述第一判断模块的判断结果为是时,保存所述输入字符。
其中,所述系统还包括:
第二判断模块,用于判断所述输入字符是否为合法的字符类型,并在判断为是时,通知所述第一判断模块继续根据所述输入字符所属控制区域以及预设的正则表达式判断所述输入字符是否满足输入要求。
其中,所述系统还包括:
字符串集合编辑器,用于接收正则表达式输入,并将接收的正则表达式作为预设的正则表达式保存。
其中,所述控制区域包括时区域、分区域和秒区域,所述输入字符的合法字符类型为数字。
其中,所述输入指令获取模块包括:
截获单元,用于截获MaskedTextBox控件的KeyDown消息或者KeyPress消息,接收字符输入指令。
实施本发明实施例,具有如下有益效果:通过根据输入字符所属控制范围以及预设的正则表达式来判断输入字符是否被允许输入,使用户只需设置输入项相应的属性,就可以轻松地实现对输入项的字符输入范围的控制。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图2,为本发明提供的输入字符控制方法的第一实施例流程图。如图1所示,该方法流程包括:
在步骤S200,接收字符输入指令,其中,字符输入指令包括输入字符。
在步骤S201,根据输入字符所属控制区域以及预设的正则表达式判断所述输入字符是否满足输入要求。若判断为否,则本方法流程结束;若判断为是,则执行步骤S202。
在步骤S202,保存所述输入字符。
本发明一种输入字符控制方法通过根据输入字符所属控制范围以及预设的正则表达式来判断输入字符是否被允许输入,使用户只需设置输入项相应的属性,就可以轻松地实现对输入项的字符输入范围的控制。
参见图3,为本发明提供的输入字符控制方法的第二实施例流程图。如图3所示,该方法流程包括:
在步骤S300,通过字符串集合编辑器接收正则表达式输入,并将接收的正则表达式作为预设的正则表达式保存。在计算机科学中,正则表达式是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。在本发明中,可以利用预先设置的正则表达式来控制输入字符的输入范围。具体地,可以通过字符串集合编辑器接收正则表达式输入,作为输入项的特定属性。
在步骤S301,接收字符输入指令,其中,字符输入指令包括输入字符。具体地,在使用MaskedTextBox控件(掩码文本框控件)实施输入项时,字符输入指令还可以包括KeyDown消息或者KeyPress消息。在本步骤S301中,可以截获MaskedTextBox控件的KeyDown消息或者KeyPress消息,接收字符输入指令。其中,KeyDown消息或者KeyPress消息均在MaskedTextBox控件接收到用户输入的输入字符时生成。
在步骤S302,判断所述输入字符是否为合法的字符类型。具体地,可以预先对输入项的每个控制区域设置字符类型属性,以便首先判断输入字符是否为合法的字符类型。例如,若输入项为时间输入,那么该输入项每个控制区域的合法字符类型均为数字。通过这种字符类型的判断,可以更快地确定不符合输入要求的输入字符。若本步骤S302的判断结果为否,则本方法流程结束;若判断为是,则执行步骤S303。
在步骤S303,根据输入字符所属控制区域以及预设的正则表达式判断输入字符是否满足输入要求。具体地,正则表达式可以包括至少一个匹配行,每个匹配行分别对应于输入项的一个控制区域,且每个匹配行用于表示其对应控制区域的输入字符范围。本步骤S303中,可以分别判断每个控制区域对应的输入字符是否匹配该控制区域对应的匹配行。
例如,若输入项是时间输入,那么该输入项的控制区域可以包括时区域、分区域和秒区域。时区域对应的正则表达式匹配行表示时区域输入字符的范围为0-23;分区域以及秒区域对应的正则表达式匹配行分别表示分区域和秒区域输入字符的范围为0-59。优选地,正则表达式包括:
^([0-1][0-9]/2[0-3])$;
^([0-5][0-9])$;
^([0-5][0-9])$。
其中,^表示一个匹配行的开始,例如正则表达式^When in能够匹配字符串“When in the course of human events”的开始,但是不能匹配“What and When in the”;[]表示匹配括号中的任何一个字符,例如正则表达式r[aou]t匹配rat、rot和rut,但是不匹配ret,可以在括号中使用连字符-来指定字符的区间,例如正则表达式[0-9]可以匹配任何数字字符;/表示将两个匹配条件进行或运算,例如正则表达式(him/her) 匹配“it belongs to him”和“it belongs to her”,但是不能匹配“it belongs to them”;$表示一个匹配行的结束,例如正则表达式weasel$ 能够匹配字符串"He's a weasel"的末尾,但是不能匹配字符串“They are a bunch of weasels”。上述正则表达式的时区域匹配行“^([0-1][0-9]/2[0-3])$”表示时区域的输入字符只能为00-19或20-23中的一个;分区域匹配行“^([0-5][0-9])$”表示分区域的输入字符只能为00-59中的一个;秒区域匹配行“^([0-5][0-9])$”表示秒区域的输入字符只能为00-59中的一个。虽然以上示出了时间输入项适用的正则表达式的一个例子,但是本发明并不限于此,本领域普通技术人员熟知其他符合输入要求的任意正则表达式。
若该步骤S303的判断结果为否,则本方法流程结束;若该步骤S303的判断结果为是,则执行步骤S304。
在步骤S304,保存输入字符。具体地,若步骤S303中确定输入字符满足输入要求,则表示允许接收该输入字符,因此可以保存该输入字符。
优选地,若输入项是如图1所示的时间输入项,那么步骤S202或步骤S304还可以包括在显示界面上显示所述输入字符。
优选地,若步骤S201、步骤S302或步骤S303的判断结果为否,还可以执行步骤:提示输入错误,指示用户重新输入,直至用户退出字符输入状态。
参见图4,为本发明提供的输入字符控制系统的第一实施例结构示意图。如图1所示,该系统包括:
输入指令获取模块410,用于接收字符输入指令,所述字符输入指令包括输入字符。
第一判断模块420,用于根据输入字符所属控制区域以及预设的正则表达式判断所述输入字符是否满足输入要求。
字符更新模块430,用于在第一判断模块420的判断结果为是时,保存所述输入字符。
本发明一种输入字符控制系统通过根据输入字符所属控制范围以及预设的正则表达式来判断输入字符是否被允许输入,使用户只需设置输入项相应的属性,就可以轻松地实现对输入项的字符输入范围的控制。
参见图5,为本发明提供的输入字符控制系统的第二实施例结构示意图。如图5所示,该系统可以包括:
字符串集合编辑器510,用于接收正则表达式输入,并将接收的正则表达式作为预设的正则表达式保存。在计算机科学中,正则表达式是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。在本发明中,可以利用预先设置的正则表达式来控制输入字符的输入范围。具体地,可以通过字符串集合编辑器510接收正则表达式输入,作为输入项的特定属性。
输入指令获取模块520,用于接收字符输入指令,其中,字符输入指令包括输入字符。具体地,在使用MaskedTextBox控件(掩码文本框控件)实施输入项时,字符输入指令还可以包括KeyDown消息或者KeyPress消息。输入指令获取模块520可以包括截获单元,该截获单元可以用于截获MaskedTextBox控件的KeyDown消息或者KeyPress消息,接收字符输入指令。其中,KeyDown消息或者KeyPress消息均在MaskedTextBox控件接收到用户输入的输入字符时生成。
第二判断模块530,用于判断所述输入字符是否为合法的字符类型。具体地,可以预先对输入项的每个控制区域设置字符类型属性,以便第二判断模块530判断输入字符是否为合法的字符类型。例如,若输入项为时间输入,那么该输入项每个控制区域的合法字符类型均为数字。通过这种字符类型的判断,可以更快地确定不符合输入要求的输入字符。
第一判断模块540,用于在第二判断模块530的判断结果为是时,根据输入字符所属控制区域以及预设的正则表达式判断输入字符是否满足输入要求。具体地,正则表达式可以包括至少一个匹配行,每个匹配行分别对应于输入项的一个控制区域,且每个匹配行用于表示其对应控制区域的输入字符范围。第一判断模块540可以分别判断每个控制区域对应的输入字符是否匹配该控制区域对应的匹配行。
具体地,若输入项是时间输入,那么该输入项的控制区域可以包括时区域、分区域和秒区域。时区域对应的正则表达式匹配行表示时区域输入字符的范围为0-23;分区域以及秒区域对应的正则表达式匹配行分别表示分区域和秒区域输入字符的范围为0-59。优选地,正则表达式包括:
^([0-1][0-9]/2[0-3])$;
^([0-5][0-9])$;
^([0-5][0-9])$。
其中,^表示一个匹配行的开始,例如正则表达式^When in能够匹配字符串“When in the course of human events”的开始,但是不能匹配“What and When in the”;[]表示匹配括号中的任何一个字符,例如正则表达式r[aou]t匹配rat、rot和rut,但是不匹配ret,可以在括号中使用连字符-来指定字符的区间,例如正则表达式[0-9]可以匹配任何数字字符;/表示将两个匹配条件进行或运算,例如正则表达式(him/her) 匹配“it belongs to him”和“it belongs to her”,但是不能匹配“it belongs to them”;$表示一个匹配行的结束。例如正则表达式weasel$ 能够匹配字符串"He's a weasel"的末尾,但是不能匹配字符串“They are a bunch of weasels”。上述正则表达式的时区域匹配行“^([0-1][0-9]/2[0-3])$”表示时区域的输入字符只能为00-19或20-23中的一个;分区域匹配行“^([0-5][0-9])$”表示分区域的输入字符只能为00-59中的一个;秒区域匹配行“^([0-5][0-9])$”表示秒区域的输入字符只能为00-59中的一个。虽然以上示出了时间输入项适用的正则表达式的一个例子,但是本发明并不限于此,本领域普通技术人员熟知其他符合输入要求的任意正则表达式。
字符更新模块550,用于在第一判断模块420的判断结果为是时,保存所述输入字符。具体地,若第一判断模块420确定输入字符满足输入要求,则表示允许接收该输入字符,因此字符更新模块430可以保存该输入字符。
优选地,若输入项是如图1所示的时间输入项,那么字符更新模块430或550还可以用于在显示界面上显示所述输入字符。
优选地,本输入字符控制系统还可以包括提示模块,用于在第一判断模块420或540或第二判断模块530的判断结果为否,即输入字符不满足输入要求时,提示用户输入错误,并指示用户重新输入,直至用户退出字符输入状态。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。