相关疑难解决方法(0)

asp.net mvc 4中的DataAnnotations验证(正则表达式) - razor视图

当使用正则表达式中的特殊字符时,DataAnnotations验证器无法在asp.net mvc 4 razor视图中工作.

模型:

[StringLength(100)]
[Display(Description = "First Name")]
[RegularExpression("^([a-zA-Z0-9 .&'-]+)$", ErrorMessage = "Invalid First Name")]
public string FirstName { get; set; }
Run Code Online (Sandbox Code Playgroud)

剃刀查看:

@Html.TextBoxFor(model => Model.FirstName, new { })
@Html.ValidationMessageFor(model => Model.FirstName)
Run Code Online (Sandbox Code Playgroud)

不显眼的验证在视图中呈现为:

<input type="text" value="" tabindex="1" style="height:auto;" name="FirstName" maxlength="100" id="FirstName" data-val-regex-pattern="^([a-zA-Z0-9 .&amp;amp;&amp;#39;-]+)$" data-val-regex="Invalid First Name" data-val-length-max="100" data-val-length="The field FirstName must be a string with a maximum length of 100." data-val="true" class="textfield ui-input-text ui-body-d ui-corner-all ui-shadow-inset valid">
Run Code Online (Sandbox Code Playgroud)

上面html中的正则表达式模式没有按照模型的RegularExpression中的指定进行渲染,即使输入有效数据(Sam's)也会导致错误.

我怎么处理这个?

--UPDATE--

我根据@Rick建议更新了代码

[StringLength(100)]
[Display(Description = "First Name")] …
Run Code Online (Sandbox Code Playgroud)

regex asp.net-mvc data-annotations razor

45
推荐指数
3
解决办法
20万
查看次数

用于验证多个电子邮件地址的正则表达式

我有一个正则表达式验证我的邮件地址,如下所示:

([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)

这完全正常,但只允许输入一封电子邮件.现在我想扩展它并允许添加多个邮件地址(例如,就像MS Outlook一样),并使用分号作为邮件分割器.

mail1@tld.com;mail2@tld.com;mail3@tld.com

现在我搜索并找到了这个:

([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}(;|$))

这在一点上有效,但遗憾的是在邮件末尾需要一个分号:

mail1@tld.com;
Run Code Online (Sandbox Code Playgroud)

当用户只输入一封电子邮件时,这不是我想要的.

如何扩展我的正则表达式(第一个)以允许添加多个邮件地址,同时让它们通过分号分割?

c# regex email validation rfc

23
推荐指数
3
解决办法
4万
查看次数

标签 统计

regex ×2

asp.net-mvc ×1

c# ×1

data-annotations ×1

email ×1

razor ×1

rfc ×1

validation ×1