2010-07-29 7 views
2

J'ai besoin de contrôler Seulement le téléchargement ExcelFile avec RegularExpressionValidator Comment puis-je faire cela? je dois écrire un modèle regex dans ValidationExpression ...Comment télécharger uniquement un fichier Excel en utilisant RegularExpressionValidator?

<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

Um. Quelles sont exactement les règles de nom de fichier dont vous avez besoin? Juste pour que le nom de fichier se termine par '.xlsx',' .xlsm' et '.xls'? Ou y a-t-il autre chose? – Oded

+0

périodes '.' sont des méta-caractères, vous devez leur échapper comme' \ .' – Amarghosh

Répondre

8

Je ne vois pas pourquoi vous valider la partie du nom de fichier - quel est le problème à propos de 123.abcd.xls? Il suffit d'utiliser

^.*\.xls[xm]?$ 
0

ValidationExpression = "[a-zA-Z0_9]. * \ bxlsx \ b" est la solution ...

+1

Il ne permet même pas une période dans le nom de fichier. – Amarghosh

1

Les solutions ci-dessus peuvent ne pas fonctionner pour les extensions en majuscules. Amélioration de la solution de "Penguen":

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

Remplacer "xyz" avec xlsx et "XYZ" avec "XLSX". S'il vous plaît donnez-moi un autre de cette expression, si elle est volumineuse.

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

n code va ici. cela vérifie si nly .xlsx est téléchargé

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

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