tryre = /^([a-z]:)?([\\/][^\\/:*?"<>|]+)+$/i;f1 = "d:/test/test.php";
f2 = "/usr/local/www/abc";
f3 = "/a./b/c./d\:";
alert(re.test(f1));
alert(re.test(f2));
alert(re.test(f3));

解决方案 »

  1.   

    不包含目录名的可能:
    re = /^([a-z]:)?([\\/]?[^\\/:*?"<>|]+)+$/i;f4 = "a.gif";
    alert(re.test(f4));但还有个问题,扩展名的判断及文件名最后一个不能是.
    re = /^([a-z]:)?([\\/]?[^\\/:*?"<>|]+[\\/])([^\\/:*?"<>|]+)([\.][^\\/:*?"<>|\.]+)?$/i;这个对没有扩展名最后一位不能是.还是不能准确判断。
      

  2.   

    re = /^([a-z]:)?([\\/]?[^\\/:*?"<>|]+)+[^.]$/i;
      

  3.   

    [^.]能匹配*等,改成[^\\/:*?"<>|.]试试。
    f4 = "a.*";