【问题标题】:ASP.NET MVC regular expression for comma separated strings用于逗号分隔字符串的 ASP.NET MVC 正则表达式
【发布时间】:2017-09-02 01:36:06
【问题描述】:

我需要在我的 ASP.NET MVC 5 项目中使用正则表达式进行 MVC 不显眼的客户端验证。

有效输入是逗号分隔的字符串值,例如:string1、string2、string 3 等

我在 regEx 模式下尝试了逗号分隔的字符串,但它没有按预期工作。谁能告诉我下面的表达式有什么问题?

[RegularExpression(@"/^[a-zA-Z]{1,20},[a-zA-Z]{1,20}$/",
                        ErrorMessage = "Please enter comma separated list")]
    public string SettingOptions { get; set; }

提前致谢。

【问题讨论】:

  • 您要强制使用的数字只能在 1 到 20 之间吗?

标签: c# asp.net asp.net-mvc


【解决方案1】:

这应该适用于您的示例 string1、string2、string 3 等:

^[a-zA-Z0-9 ,]+$


[RegularExpression(@"^[a-zA-Z0-9 ,]+$"]

【讨论】:

    【解决方案2】:

    试试这个。

    "[a-zA-Z]{1,20},[a-zA-Z]{1,20}"
    

    因为^$ 表示字符串的开始和结束。 它只允许string1,string2

    【讨论】:

    • 这只匹配两个逗号分隔的字符串。不是示例所述的 3。
    • 是的,但正如我所说.. 只有两个不多不少,分隔值之间也不能有空格。
    【解决方案3】:

    要将您的正则表达式与逗号分隔的字符串匹配,请使用正则表达式,例如:

    [0-9a-zA-Z]+(,[0-9a-zA-Z]+)*

    如果您希望删除数字,则可以放弃 0-9 要求。

    经过更多审查后,此正则表达式可能存在细微差异,并提出了可能更有帮助的替代方法。以前的正则表达式不允许在每个分隔的字符串项中使用空格。

    ^([a-zA-Z0-9]+,?\s*)+$

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-20
      • 1970-01-01
      • 1970-01-01
      • 2016-12-03
      相关资源
      最近更新 更多