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

如何校验字符串仅包含数字、短横线和空格?非正则实现方法

非正则实现字符串仅包含数字、短横线、空格的校验方案

实现思路:遍历字符串的每一个字符,逐一校验是否属于允许的字符范围,只要存在一个不符合要求的字符即判定校验失败。

允许的字符范围如下:

  • 0-9的半角数字
  • 半角短横线-
  • 半角空格

基础遍历实现(C#)

可读性高,适合需要在遍历过程中添加额外自定义逻辑的场景:

bool IsValidString(string input)
{
    // 若业务允许空字符串通过,可删除此行判断
    if (string.IsNullOrEmpty(input))
    {
        return false;
    }

    foreach (char c in input)
    {
        if (!(char.IsDigit(c) || c == '-' || c == ' '))
        {
            // 存在非法字符,校验失败
            return false;
        }
    }
    // 所有字符均符合要求,校验通过
    return true;
}

// 调用逻辑和原正则写法对齐
if (!IsValidString(str))
{
    // 校验失败后的业务逻辑
}

LINQ简化实现(C#)

代码更简洁,适合不需要额外自定义逻辑的场景:

bool IsValidString(string input)
{
    return !string.IsNullOrEmpty(input) && input.All(c => char.IsDigit(c) || c == '-' || c == ' ');
}

补充说明

如果业务需要支持全角数字、全角空格、全角短横线,直接在判断条件中追加对应字符的校验规则即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:00:03