如何使用RegularExpressionValidator上传仅Excel文件?

时间:2010-07-29 07:11:14

标签: .net asp.net regex visual-studio-2008

我需要使用RegularExpressionValidator控制只上传Excel文件我该怎么做?我需要在验证表达式中编写一个正则表达式模式...

 <h3>FileUpload Test</h3>
    <div>
        <asp:FileUpload ID="FileUpload1" runat="server" />
        <asp:Button id="UploadBtn" Text="Upload File" OnClick="UploadBtn_Click" runat="server" Width="105px" />
        <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
        <asp:RegularExpressionValidator
id="FileUpLoadValidator" runat="server"
ErrorMessage="Upload Excel only."
ValidationExpression="([a-z]\w*)(.xlsx|.xlsm|.xls)$"
ControlToValidate="FileUpload1">
</asp:RegularExpressionValidator>
    </div>

5 个答案:

答案 0 :(得分:9)

我不明白为什么你要验证文件名部分 - 123.abcd.xls有什么问题?只需使用

^.*\.xls[xm]?$

答案 1 :(得分:1)

以上给出的解决方案可能不适用于大写的扩展。加强“Penguen”的解决方案:

Regex regx = new Regex(@"([a-zA-Z0_9].*\bxyz)|([a-zA-Z0_9].*\bXYZ)\b");

用xlsx替换“xyz”,用“XLSX”替换“XYZ”。 如果它是一个庞大的表达式,请给我这个表达的替代。

答案 2 :(得分:1)

var reg = /^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))+(.xls|.xlsx|.XLS|.XLSX)$/;

if (reg.test($("[id$=FileUpload1]").val()))
{
    return true;
}

答案 3 :(得分:0)

ValidationExpression =“[a-zA-Z0_9]。* \ bxlsx \ b”是解决方案......

答案 4 :(得分:0)

 var ext = this.value.match(/\.(.+)$/)[1];
         var cext = ext.toLowerCase();
    switch (cext) {
        case 'xlsx':

n代码在这里。这检查是否上传了.xlsx