【问题标题】:How to add ASCII only data annotation [duplicate]如何添加仅ASCII数据注释[重复]
【发布时间】:2017-03-21 18:17:41
【问题描述】:

我正在使用数据注释进行验证,我想使用正则表达式数据注释来检查字符串是否只有 ASCII 字符。

      public class SomeObject
{
    [Required]
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }
    [Required]
    [MaxLength(4000)]       
    [RegularExpression(@"[^\u0000-\u007F]+")]
    public string Text { get; set; }
}

你能帮我把正则表达式改成只允许 ASCII 字符吗

【问题讨论】:

  • 我确定这与您的做法完全不同。 ASCII 字符基本上是键盘上的每个键加上更多。所以我认为这看起来很简单有效。我要关注这个,ps google 说了什么。
  • @dlatikay 你比我快 3 秒我确定

标签: c# regex data-annotations


【解决方案1】:

如果您想测试完整的 ASCII 集:

[RegularExpression(@"^[\x00-\x7F]+$")]
public string Text { get; set; }

如果不是完整的 ASCII 集(这 不会 传递除 a-z(也是大写)和 0-9 以外的字符>):

[RegularExpression(@"^\w+$")]
public string Text { get; set; }

【讨论】:

  • 是的,你是对的。由于大写和小写都应该通过测试,\w 似乎是更好的选择。
猜你喜欢
  • 1970-01-01
  • 2012-06-27
  • 2015-01-02
  • 1970-01-01
  • 2021-09-24
  • 2017-08-01
  • 2020-03-27
相关资源
最近更新 更多