【发布时间】:2013-05-02 17:47:49
【问题描述】:
我已经阅读了一些回答这个问题的问题,并且我了解我需要使用的正则表达式,但是在 MVC 中实际应用它是我绊倒的地方。我还会先说我目前不擅长正则表达式。
我正在 MVC 中编写一个文件上传应用程序,并且我想应用标准的 Windows 文件名验证。 \/:*?"<>| 是名称中任何位置的无效字符。
我的视图模型是这样设置的,使用我发现的不同正则表达式:
public class FileRenameModel
{
[RegularExpression(@"^[\w\-. ]+$", ErrorMessage="A filename cannot contain \\ / : * ? \" < > |")]
[Required]
public string Filename { get; set; }
[Required]
public int FileID { get; set; }
}
每当我尝试将正则表达式更改为@"^[\\/:?"<>|]+$ 时,中间的 " 都会杀死它并引发错误。我还没有弄清楚如何正确地转义它以便可以将它包含在字符串中。当我使用没有 " 的正则表达式告诉我我放入文本框中的任何字符串都失败了。我是否错误地使用了^?
【问题讨论】:
标签: asp.net-mvc regex