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

C# MVC中姓名验证正则表达式问题及JS适配咨询

问题解决:姓名正则验证及跨环境使用

C# MVC 正则失效原因及修正

你的原正则[A-Za-z.,-' ]*$存在两个关键问题:

  • 缺少开头锚定符^:没有^时,正则仅校验字符串末尾是否符合规则,像123John这类含非法字符的字符串也会被判定为有效。
  • 字符集中连字符位置易引发歧义:正则字符集[]里,-放在中间会被解析为范围(比如a-z),你的写法虽不会产生有效范围,但规范写法是将-放在字符集开头或结尾,避免意外问题。

修正后的C# MVC模型代码

// 允许空字符串的版本
[RegularExpression(@"^[A-Za-z., '-]*$", ErrorMessage = "格式不正确")]
public string FullName { get; set; }

// 不允许空字符串的版本(将*改为+)
[RegularExpression(@"^[A-Za-z., '-]+$", ErrorMessage = "格式不正确")]
public string FullName { get; set; }

注:使用@符号避免C#字符串转义问题,让正则写法更直观。

正则在JavaScript/jQuery中的可用性

该正则完全可以在JavaScript或jQuery中使用,只需调整为JS的正则语法即可:

JavaScript 基础校验示例

// 使用正则字面量(推荐写法)
const nameValidator = /^[A-Za-z., '-]*$/;

// 校验测试
console.log(nameValidator.test("Jane O'Connor")); // 输出 true
console.log(nameValidator.test("Bob-Smith, Sr.")); // 输出 true
console.log(nameValidator.test("Invalid123Name")); // 输出 false

jQuery Validate 表单验证示例

如果使用jQuery Validate插件,可自定义验证规则:

$.validator.addMethod("validName", function(value, element) {
    return this.optional(element) || /^[A-Za-z., '-]+$/.test(value);
}, "姓名格式不正确");

// 绑定到表单验证
$("#yourForm").validate({
    rules: {
        FullName: {
            validName: true
        }
    }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 23:25:10