.net 如何使用RegularExpressionValidator仅上载Excel文件?

.net 如何使用RegularExpressionValidator仅上载Excel文件?,.net,asp.net,regex,visual-studio-2008,.net,Asp.net,Regex,Visual Studio 2008,我只需要使用RegularExpressionValidator控制ExcelFile上传我怎么能做到?我需要在ValidationExpression中编写一个正则表达式模式 <h3>FileUpload Test</h3> <div> <asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Button id="Upload

我只需要使用RegularExpressionValidator控制ExcelFile上传我怎么能做到?我需要在ValidationExpression中编写一个正则表达式模式

 <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>
FileUpload测试

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

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

^.*\.xls[xm]?$

上述给定的解决方案可能不适用于大写形式的扩展。加强“彭根”的解决方案:

Regex regx = new Regex(@"([a-zA-Z0_9].*\bxyz)|([a-zA-Z0_9].*\bXYZ)\b");
将“xyz”替换为xlsx,“xyz”替换为“xlsx”。 如果这个表达式太大,请给我另一个表达式

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

n代码在这里。这将检查是否上载了only.xlsx。您需要的文件名规则是什么?只是为了让文件名以
.xlsx
.xlsm
.xls
结尾?或者还有别的吗?句点
是元字符,您必须将它们转义为
\。
它甚至不允许在文件名中使用句点。
var reg = /^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))+(.xls|.xlsx|.XLS|.XLSX)$/;

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