【发布时间】:2010-08-12 01:13:45
【问题描述】:
我正在使用单轨、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# 中指定没有斜杠的正则表达式,但事实并非如此。
【问题讨论】:
-
如果您指定您正在使用的 Monorail 版本以及您正在使用的 jQuery 和 jquery.validator 版本,将会很有帮助
标签: activerecord jquery-validate castle-monorail