Как загрузить только файл Excel, используя RegularExpressionValidator? - PullRequest
3 голосов
/ 29 июля 2010

Мне нужно контролировать только загрузку в ExcelFile с помощью RegularExpressionValidator. Как я могу это сделать?мне нужно написать шаблон регулярного выражения в 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>

Ответы [ 5 ]

9 голосов
/ 29 июля 2010

Не понимаю, зачем вам проверять часть имени файла - что не так с 123.abcd.xls? Просто используйте

^.*\.xls[xm]?$
1 голос
/ 11 июня 2015
var reg = /^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))+(.xls|.xlsx|.XLS|.XLSX)$/;

if (reg.test($("[id$=FileUpload1]").val()))
{
    return true;
}
1 голос
/ 03 мая 2013

Приведенные выше решения могут не работать для расширений в верхнем регистре. Усовершенствование решения "Пингвин":

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

Заменить "xyz" на xlsx, а "XYZ" на "XLSX". Пожалуйста, дайте мне альтернативу этому выражению, если оно громоздкое.

0 голосов
/ 05 августа 2014
 var ext = this.value.match(/\.(.+)$/)[1];
         var cext = ext.toLowerCase();
    switch (cext) {
        case 'xlsx':

n код здесь. это проверяет, загружен ли nly .xlsx

0 голосов
/ 29 июля 2010

ValidationExpression = "[a-zA-Z0_9]. * \ Bxlsx \ b" является решением ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...