RegEx用于FileUpload的客户端验证

时间:2012-09-27 11:59:31

标签: asp.net regex validation symbols

我正在尝试创建一个RegEx Validator,它根据允许的扩展(用户指定的)列表检查FileUpload输入中的文件扩展名。以下是我所拥有的,但我正在努力使用文件路径中出现的反斜杠(\)的语法。显然下面是不正确的,因为它只是逃避导致错误的(])。我真的很感激这里的任何帮助。似乎有很多例子,但是当我尝试时似乎都没有。

[a-zA-Z_-s0-9:\]+(.pdf|.PDF)$

2 个答案:

答案 0 :(得分:2)

要在字符类中包含反斜杠,您需要使用特定的转义序列(\b):

[a-zA-Z_\s0-9:\b]+(\.pdf|\.PDF)$

请注意,这可能有点令人困惑,因为在字符类之外,\b表示单词边界。我还假设,-s是一个错字,应该代表一个白色空间。 (否则它不应该编译,我认为)

编辑:您还需要逃脱这些点。否则它们将是任何字符的元字符,但换行符。

另一个编辑:如果您确实想要在文件名中允许连字符,则需要将连字符放在字符类的末尾。像这样:

[a-zA-Z_\s0-9:\b-]+(\.pdf|\.PDF)$

答案 1 :(得分:0)

你可能想要使用像

这样的东西
[a-zA-Z_0-9\s:\\-]+\.[pP][dD][fF]$

相同
[\w\s:\\-]+\.[pP][dD][fF]$

因为\w = [a-zA-Z0-9_]

确保将字符-放在[...]列表中的第一个或最后一个项目,否则它对范围或字符具有特殊含义,例如a-z

\字符也必须被另一个斜杠转义,即使在[...]内也是如此。