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

C#如何实现检查字符串是否仅含允许字符(允许包含'/')的方法

刚好我之前处理过类似的需求,给你两种实用的C#实现方式,你可以根据场景选择:

方法一:使用正则表达式(简洁高效)

正则表达式是处理这类字符校验需求的常用方案,代码简洁且可读性不错:

using System.Text.RegularExpressions;

public bool CheckCharacter(string input)
{
    // 处理输入为null或空字符串的边界情况,这里默认空字符串合法,可根据需求调整
    if (string.IsNullOrEmpty(input))
    {
        return true;
    }
    // 正则规则:整个字符串只能由大小写字母、数字和 '/' 组成
    Regex validCharsRegex = new Regex(@"^[a-zA-Z0-9/]+$");
    return validCharsRegex.IsMatch(input);
}

说明:

  • ^ 和 $ 确保整个字符串都符合规则,不会出现部分合法的情况
  • [a-zA-Z0-9/] 定义了允许的字符集:大小写字母、数字、以及 '/'
  • 如果你的需求里还允许其他非特殊字符(比如下划线 _),只需把字符集改成 [a-zA-Z0-9/_]+ 即可

方法二:逐个字符检查(直观可控)

如果你不想依赖正则表达式,或者需要更精细的控制,可以遍历每个字符逐一校验:

public bool CheckCharacter(string input)
{
    // 处理边界情况,同样可根据需求调整空字符串的判定结果
    if (string.IsNullOrEmpty(input))
    {
        return true;
    }
    foreach (char c in input)
    {
        // 检查当前字符是否是字母/数字,或者是 '/'
        bool isAllowedChar = char.IsLetterOrDigit(c) || c == '/';
        if (!isAllowedChar)
        {
            // 发现不允许的特殊字符,直接返回false
            return false;
        }
    }
    // 所有字符都合法,返回true
    return true;
}

说明:

  • char.IsLetterOrDigit(c) 会自动匹配大小写字母和数字,无需手动判断字符范围
  • 这种方式的优势是调试起来更直观,你可以在循环里添加日志或额外的校验逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 16:02:41