You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WinForms TextBox输入校验:如何仅允许M/N开头且含至少两个点的输入

WinForms TextBox 输入校验实现方案

你可以通过基础字符串方法直接实现校验,逻辑清晰无需额外引入命名空间,修改后的SaveText_Click代码如下:

private void SaveText_Click(object sender, EventArgs e)
{
    // 替换为你实际的TextBox控件的Name属性值
    string input = yourTextBox.Text.Trim();
    
    // 执行规则校验
    bool isValid = !string.IsNullOrEmpty(input)
        // 规则1:以N或M开头,默认区分大小写;需要支持小写n/m的话可添加StringComparison.OrdinalIgnoreCase参数
        && (input.StartsWith("N") || input.StartsWith("M"))
        // 规则2:至少包含2个点
        && input.Count(c => c == '.') >= 2;

    if (isValid)
    {
        MainNotifs.Show(this, "Attached !");
        attachment = true;
    }
    else
    {
        // 可选:校验不通过时弹出错误提示,不需要可删除
        MainNotifs.Show(this, "输入不符合规则:需以N/M开头且至少包含两个点");
        attachment = false;
    }
}

如果你偏好使用正则实现,可引入System.Text.RegularExpressions命名空间后,用正则规则做校验:

  • 匹配规则写为^[NM][^.]*\.[^.]*\..*$,可直接命中满足两个要求的字符串
  • 对应校验代码替换为bool isValid = Regex.IsMatch(input, @"^[NM][^.]*\.[^.]*\..*$");即可

注意事项

  • 代码中的yourTextBox必须替换为你项目里对应TextBox控件的实际名称
  • 若需要支持小写n/m开头,正则规则可调整为^[NMnM][^.]*\.[^.]*\..*$,或者给Regex.IsMatch方法添加RegexOptions.IgnoreCase参数

内容的提问来源于stack exchange,提问作者shdwrv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 11:42:02