【问题标题】:Regex MVC model Validation正则表达式 MVC 模型验证
【发布时间】:2015-02-17 15:13:44
【问题描述】:

这是一个在 JS 中工作的正则表达式脚本:

var emailRegExp   = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;

我如何转义像 \ 和 "这样的字符

我想将它用于我的模型验证,如下所示:

[RegularExpression(@"/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/")]

但是当我使用两个 \ 或在字符串前使用 @ 进行转义时,它会失败。

此脚本在 C# 模型验证中的外观如何?

谢谢!

【问题讨论】:

    标签: regex asp.net-mvc


    【解决方案1】:

    您需要删除 js 分隔符,即开头和结尾处的正斜杠。

    @"^(([^<>()[\]\\.,;:\s@""]+(\.[^<>()[\]\\.,;:\s@""]+)*)|("".+""))@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$"
    

    【讨论】:

    • 我很乐意接受您的回答,但它以 " 字符失败。@"^(([^()[]\\.,;:\s@\"
    • 我也不得不像这样转义双引号:@"^(([^()[]\\.,;:\s@\"" 请编辑你的答案,所以我可以接受:)
    猜你喜欢
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-03
    相关资源
    最近更新 更多