我正在使用单轨、activerecord 和 jquery。我有一个带有邮政编码文本框的表格。我在与表单关联的活动记录类中有:
[Property]
[ValidateNonEmpty]
[ValidateRegExp(@"/^\d{5}(-\d{4})?$/", "Invalid")]
public string ZipCode { get; set; }
如您所见,我使用的是 ValidateRegExp 属性,然后它会自动生成 jQuery 验证规则。问题是 javascript 中的正则表达式与 C# 中的正则表达式不同。Javascript 在正则表达式之前和之后需要 /,而 C# 不需要。如果我加上斜线,那么 jQuery 验证将起作用,但如果他们绕过 javascript 验证并提交禁用 js 的表单(或者如果有人通过其他方式(如测试用例)保存对象),那么它会说邮政编码是无效,因为 C# 不喜欢斜杠。
所以我的问题是,你如何用一个正则表达式同时取悦 javascript 和 C#?我希望它足够聪明,可以在 jQuery 验证之前和之后添加斜杠,以便您可以在没有斜杠的情况下在 C# 中指定正则表达式,但事实并非如此。