【问题标题】:Leave Event / Regex Implemented (Query about ignoring Textboxes if empty / null)保留事件/正则表达式实施(如果为空/空,则查询忽略文本框)
【发布时间】:2019-05-17 01:19:03
【问题描述】:

我是 C# 新手,在尝试实现“文本框为空时忽略正则表达式函数”时遇到了一些困难。

如下图所示,在离开事件中,我已经使名称文本框中提交的数据是字母字符,但是,在测试时,应用程序仍然警告我文本框需要字母字符,即使文本框是空的/NULL。

我想要保持相同的正则表达式函数,但如果文本框为空,我希望应用程序不会警告我有关要求。

非常感谢。

    private void txtName_Leave(object sender, EventArgs e)
    {
        if (!System.Text.RegularExpressions.Regex.IsMatch(this.txtName.Text, "^[a-zA-Z ]"))
        {
            MessageBox.Show("This textbox accepts only alphabetical characters.", "Warning");

            this.txtName.ResetText();
        }
        else if (txtName.Text.Trim() == string.Empty)
        {
            return;
        }
    }

【问题讨论】:

    标签: c# events


    【解决方案1】:

    你需要使用的是^[a-zA-Z]*$

    • ^ 字符串开头
    • [a-zA-Z]* 加上 * 表示 0+ Alpha 字符
    • $ 字符串结尾

    【讨论】:

    • 虽然这是一个很好的答案,但您还应该解释为什么这个正则表达式适用于 OP(完全匹配,0-many)
    • 完美运行 - 感谢您的解释 :)
    • 如果这不是问题还有一件事 - 我希望我的正则表达式(使用“^[a-zA-Z ]*$”)也接受撇号字符,因为我将使用它对于地址文本框。请问有办法实现吗?
    • @avner1169 ^[a-zA-Z']*$
    猜你喜欢
    • 2021-09-13
    • 2020-08-06
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 2016-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多