1

我有一个 FileUpload 控件,需要验证使用 RegularExpressionValidator 浏览的 FileName。我正在使用这个正则表达式:^[a-zA-Z0-9_@.-]*$。但它也在检测目录中的特殊字符。EG 中的\或。另一个问题是需要使用静态类来存储正则表达式。因此,在加载包含 FileUpload 控件的用户控件时,会有类似的东西,其中 FileNameRegex 被声明为静态字符串。:C:\Sample FIle.txtthis.RegexValidatorControl.ValidationExpression = SampleClass.FileNameRegex^[a-zA-Z0-9_@.-]*$

关于我应该如何处理这个问题的任何帮助?

有2个要求:

  1. 应该使用正则表达式验证器。
  2. 正则表达式存储在静态类的静态成员中。
4

2 回答 2

0

我认为类似下面的内容为 Windows 文件名/目录结构提供了不错的匹配:

^[A-Z]:(\\[^\\/:*?"<>|]+)+.\w+$

(请注意,在尝试输入错误字符后,黑名单来自 Windows 资源管理器。)

示例匹配:

$ grep -P '^[A-Z]:(\\[^\\/:*?"<>|]+)+.\w+$' file_list.txt 
C:\Sample File5.txt
C:\Program Files (x86)\Windows\file.exe
C:\Program Files\Jon's folder\file.pdf
C:\my-file.txt
C:\5@^&[]{}!#i.txt.exe

如果要将其更改为白名单,请进行相应修改:

$ grep -P '^[A-Z]:(\\[\w\s@-]+)+.\w+$' file_list.txt 
C:\Sample File5.txt
C:\my-file.txt
于 2013-09-04T18:37:09.643 回答
0

这实际上起到了作用: ^[A-Za-z0-9 _]*[A-Za-z0-9 ._:\\]*[\.]?[A-Za-z0-9]+$

这接受只有 1 的路径.

于 2013-09-05T05:06:17.767 回答