正则表达式的动态解释

时间:2012-02-15 17:23:32

标签: c# asp.net regex user-controls

我遇到这个问题,我创建了一个用户控件,模拟键盘在触摸屏自助服务终端上运行的应用程序上使用。键盘可以传递一个正则表达式,并有一个“Enter”按钮,单击该按钮将验证输入,但我想知道是否有一种方法动态验证输入进入和禁用某些键取决于它是否是下一个输入的有效字符。 为了给出一些上下文,如果我通过键盘输入英国邮政编码的正则表达式,并且用户输入了2个字母,那么我会希望键盘禁用所有其他字母并仅启用数字等。

提前致谢。

2 个答案:

答案 0 :(得分:0)

您可以尝试动态创建RegularExpressionValidator控件并将其添加到Page_Load()

上的Page控件集合中
var regexValidator = new RegularExpressionValidator
                {
                    ControlToValidate = "keyboardTexBox",
                    ValidationExpression =
                        @"^([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}|GIR 0AA)$"
                };

答案 1 :(得分:0)

这是我会尝试的。

有一个onKeyUp javascript函数,用于检查字段中的字母。如果它包含2个字母然后用javascript禁用字母并更改与enter按钮相关联的javascript函数(让我们调用此函数CheckUKPostCode)。在CheckUKPostCode中,您将验证英国邮政编码。如果用户开始输入数字,onKeyUp函数将禁用这些字母,并将与输入按钮相关联的功能更改为USPostCode或您需要的任何内容,然后此功能将验证美国邮政编码