我需要使用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>
答案 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