正则表达式验证前台控件如下:
<div>
<asp:FileUpload ID="FileUpload1" runat="server" />
 <asp:Button ID="btnUpload" runat="server" Text="上传" OnClick="btnUpload_Click" CssClass="minbtn" />
<asp:RegularExpressionValidator id="RegularExpressionValidator1" runat="server" ControlToValidate="FileUpload1" ErrorMessage="只能上传office文档、表格和图片文件。" ValidationExpression="^(([\u4e00-\u9fa5])|(\w))+(.doc|.docx|.xls|.xlsx|.jpg|.gif)$"></asp:RegularExpressionValidator> 
</div>ValidationExpression="^(([\u4e00-\u9fa5])|(\w))+(.doc|.docx|.xls|.xlsx|.jpg|.gif)$" 这段正则经过站长之家正则表达式的验证都没有问题,但是写上之后,无论是上传什么文件都不能通过正则验证。

解决方案 »

  1.   

    ^\w+\.(docx?|xlsx?|jpg|gif)$
      

  2.   

    所有的asp.net控件都要解析为静态的html的,你直接在html源文件里 查看验证的js 就比较容易找到问题了
      

  3.   


    在HTML源码里找到的正则表达式为:
    ^(([\\u4e00-\\u9fa5])|(\\w))+(.doc|.docx|.xls|.xlsx|.jpg|.gif)$放入正则表达式验证中,发现也不是因为楼上所说的加了^$的问题,而是正则表达式中间部分有问题,
    希望能匹配的是带有中文汉字名称的文档文件或者图片文件。
      

  4.   

    正则表达式换成:
    ValidationExpression="((\w)|([\u4e00-\u9fa5]))+(.doc|.docx|.xls|.xlsx|.jpg|.gif)"
    还是不能正确匹配,在HTML源文件中全部都在原斜杠上加了双斜杠。
      

  5.   

    判断是否为图片文件:
    http://www.cnblogs.com/insus/archive/2012/03/08/2385054.html
      

  6.   

    发现改成如下还是不行:
    ValidationExpression=".+\.(doc|docx|xls|xlsx|jpg|gif)"正则控件验证的是FileUpload控件,是不是在哪里应该修改某个属性值?