C# 数据验证常用正则表达式

以下是通用数据校验正则表达式整理,包含你提供常见使用场景的数字类规则、字符串、日期、网络地址等,方便日常开发使用:

一、数字类校验(包含你提供的规则)

|-----------------|-----------------------------------------------------------------------------------------|--------------------------------------|
| 校验场景 | 正则表达式 | 说明 |
| 1. 纯数字 | ​​^[0-9]$​​ | 单个数字(0-9) |
| 2. n位数字 | ​​^\d{n}$​​ | 固定n位数字(如​​^\d{3}$​​匹配3位数字) |
| 3. 至少n位数字 | ​​^\d{n,}$​​ | 位数≥n(如​​^\d{2,}$​​匹配2位及以上数字) |
| 4. m-n位数字 | ​​^\d{m,n}$​​ | 位数在m到n之间(如​​^\d{2,4}$​​匹配2-4位数字) |
| 5. 零或非零开头的数字 | ​​^0|[1-9][0-9]*$​​ | 允许"0"或"非0开头的正整数" |
| 6. 非零开头、最多两位小数 | ​​^[1-9][0-9]*(\.[0-9]{1,2})?$​​ | 整数部分非0开头,小数部分最多2位(如123、123.4、123.45) |
| 7. 带1-2位小数的正/负数 | ​​^(-?)d+(\.\d{1,2})?$​​​(修正:​​^(-?)\d+(\.\d{1,2})?$​​) | 允许正负整数、正负1-2位小数(如-123、123.4、-123.45) |
| 8. 正/负数、小数 | ​​^(-|\+)?d+(\.\d+)?$​​(修正:`^(- | \+)?\d+(\.\d+)?\`) | | 9. 两位小数的正实数 | ​`​^[0-9]+(\.[0-9]{2})?​ | 正整数或带2位小数的正数(如123、123.45) | | 10. 1-3位小数的正实数 | ​​^[0-9]+(.[0-9]{1,3})?​`​ | 正整数或带1-3位小数的正数(如123、123.4、123.456) | | 11. 非零正整数 | ​`​^[1-9]\d*​​ 或 ​​^[1-9][0-9]​`​​ 或 ​`​^\+?[1-9][0-9]*​ | 非0开头的正整数(如1、123) | | 12. 非零负整数 | ​​^-[1-9][0-9]​`​​ 或 ​`​^-[1-9]\d*​ | 非0开头的负整数(如-1、-123) | | 13. 非负整数 | ​​^\d+​`​​ 或 ​`​^[1-9]\d*|0​ | 正整数或0(如0、123) | | 14. 非正整数 | ​​^-[1-9]\d*|0​`​​ 或 ​`​^(-\d+)|(0+)​ | 负整数或0(如0、-123) | | 15. 非负浮点数 | ​​^\d+(.\d+)?​`​​ 或 ​`​^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0​ | 正小数、正整数、0(如0、123、123.45) | | 16. 非正浮点数 | ​​^(-\d+(.\d+)?)?(0+(.0+)?)?​`​​ 或 ​`​^(-[1-9]\d*\.\d*|0\.\d*[1-9]\d*)|0?\.0+|0​ | 负小数、负整数、0(如0、-123、-123.45) | | 17. 正浮点数 | ​​^[1-9]\d*.\d*|0.\d*[1-9]\d*​`​ 或 \`\^((\[0-9\]+\\.\[0-9\]*\[1-9\]\[0-9\]*) | (\[0-9\]*\[1-9\]\[0-9\]*\\.\[0-9\]+) | | 18. 负浮点数 | ​`​^-[1-9]\d*\.\d*|0\.\d*[1-9]\d*​ 或 \^(-(([0-9]+\.[0-9][1-9][0-9]) | ([0-9][1-9][0-9]\.[0-9]+) |
| 19. 浮点数 | ​​^(-?\d+)(\.\d+)?$​​​ 或 ​​^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*)|0?\.0+|0$​​ | 正负整数、正负小数、0(如-123、0、123.45) |

二、字符串类校验

|--------------|---------------------------------------------|---------------------|
| 校验场景 | 正则表达式 | 说明 |
| 1. 纯字母(大小写) | ​​^[A-Za-z]+$​​ | 仅包含英文字母(如abc、ABC) |
| 2. 纯中文 | ​​^[\u4e00-\u9fa5]+$​​ | 仅包含中文字符(如"你好") |
| 3. 字母+数字 | ​​^[A-Za-z0-9]+$​​ | 仅包含英文字母和数字(如abc123) |
| 4. 字母+数字+下划线 | ​​^\w+$​​​ (等价于​​^[A-Za-z0-9_]+$​​) | 匹配"单词字符"(如abc_123) |
| 5. 不包含特殊字符 | ​​^[A-Za-z0-9\u4e00-\u9fa5]+$​​ | 仅包含字母、数字、中文(无特殊符号) |
| 6. 固定长度字符串 | ​​^.{n}$​​​ (如​​^.{5}$​​匹配5个任意字符) | 长度固定为n的字符串 |
| 7. 长度范围字符串 | ​​^.{m,n}$​​​ (如​​^.{2,5}$​​匹配2-5个任意字符) | 长度在m到n之间的字符串 |

三、日期/时间类校验

|-------------------|----------------------|---------------------|
| 校验场景 | 正则表达式 | 说明 |
| 1. 日期(yyyy-MM-dd) | `^\d{4}-(0[1-9] | 1[0-2])-(0[1-9] |
| 2. 日期(yyyy/MM/dd) | `^\d{4}/(0[1-9] | 1[0-2])/(0[1-9] |
| 3. 时间(HH:mm:ss) | `^(0[0-9] | 1[0-9] |
| 4. 时间(HH:mm) | `^(0[0-9] | 1[0-9] |

四、网络/地址类校验

|---------------|-------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|
| 校验场景 | 正则表达式 | 说明 |
| 1. 邮箱地址 | ​​^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$​​ | 标准邮箱格式(如test@example.com) |
| 2. 手机号(国内) | ​​^1[3-9]\d{9}$​​ | 国内11位手机号(如13800138000) |
| 3. IP地址(IPv4) | `^((25[0-5] | 2[0-4]\d |
| 4. URL(网址) | ​​^(http|https):\/\/([\w-]+\.)+[\w-]+(\/[\w-./?%&=]*)?$​​ | 以http/https开头的网址(如​​https://www.example.com​​) |

五、注意事项
  1. 正则表达式中的特殊符号(如​|​​(​)需根据语言转义(如C#中需用​\\​代替​\​);
  2. 部分规则(如日期)仅做格式校验,如需精准合法性(如2月30日)需结合业务代码;
  3. 使用时可根据实际场景调整规则(如手机号可补充国际号码格式)。
相关推荐
小北方城市网4 小时前
第7课:Vue 3应用性能优化与进阶实战——让你的应用更快、更流畅
前端·javascript·vue.js·ai·性能优化·正则表达式·json
gis分享者9 小时前
Bash 中如何使用正则表达式进行文本处理?(中等)
正则表达式·bash·shell·文本·处理
mofei121381 天前
正则表达式高级用法指南
python·正则表达式·零宽断言·原子分组
jayson.h2 天前
正则表达式
正则表达式
3824278272 天前
python:正则表达式
前端·python·正则表达式
烛阴3 天前
C# 正则表达式(2):Regex 基础语法与常用 API 全解析
前端·正则表达式·c#
烛阴4 天前
C# 正则表达式:量词与锚点——从“.*”到精确匹配
前端·正则表达式·c#
张彦峰ZYF4 天前
Python 模式匹配与高效正则表达式:从语言特性到工程级简单实践
python·正则表达式
小北方城市网4 天前
第2课:零基础前端框架实操入门——从核心语法到第一个完整项目
javascript·ai·正则表达式·json·html5