.net 如何使用RegularExpressionValidator仅上载Excel文件?
我只需要使用RegularExpressionValidator控制ExcelFile上传我怎么能做到?我需要在ValidationExpression中编写一个正则表达式模式.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
<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;
}