【发布时间】:2018-02-05 12:25:45
【问题描述】:
我有 Asp.net mvc 应用程序,在提交表单上我使用 Regex 和 StringLength 属性来检查字符串。场景是我允许某种代码,但它们的长度不同。我的班级项目正则表达式和属性在这里:`
[StringLength(13,ErrorMessage="Allowed 13 or 12 Characters",MinimumLength=12)]
[RegularExpression("^(01|04|05|06|pt|pT|Pt|PT|fg|fG|Fg|FG)[0-9]*(FR|fr|Fr|fR)?$", ErrorMessage = "Entered Format Is Incorrect")]
public string BarCode { get; set; }
问题是条形码 FG,01,04,06 在 PT 编码时长度为 12长度必须为 13。通常用户使用 PT 代码 90%.. 有时他们会插入 12 长度的 PT 代码及其错误。 我可以同时有 2 个正则表达式吗?我可以验证正则表达式中特定代码的长度吗?我认为 [StringLength(13,ErrorMessage="Allowed 13 or 12 } 属性不是我需要的......
【问题讨论】:
-
您不能有 2 个
[RegularExpression]属性,但您可以有一个正则表达式,它允许包含FG的条形码包含 12 个字符,而包含PT的条形码包含 13 个字符(使用 @ 987654327@),并删除[StringLength]属性 -
尝试something like this,但请注意末尾的
FR是可选的,此处不计入。 -
big thnx Wiktor Stribiżew - 一切正常,但是,如果我的代码以三个符号开头,如 KLM07489869FR - 长度 13,我如何将它添加到您的正则表达式中?我们将添加这个code later.ofc 我正在自己尝试,但我不想弄乱你所有的好东西。
-
让我发帖,我会解释的。
标签: c# regex asp.net-mvc