Winodws的文件夹是不能包含   \/:*?"<>|    这几个符号的。
我想用js验证文件夹名称var reg = new RegExp('^[^\/:*?"<>|]+$');
alert(reg.test("新建文件|夹")); // 除了 \ 符号外,都没问题。但是就是匹配不了 \ 符号
var reg = new RegExp('^[^\\/:*?"<>|]+$');// 转义 \ 符号也不行
alert(reg.test("新建文件\夹")); // 弹出 true
alert(reg.test("新建文件\\夹")); // 弹出 true请问这个正则要怎么写?JavaScript正则文件夹名称文件夹斜杠

解决方案 »

  1.   


    var reg=/[\\/:*?"<>|]/;
    alert(!reg.test("新建文件\夹")); // 弹出 true
    alert(!reg.test("新建文件\\夹")); // 弹出 true
      

  2.   


    var reg = new RegExp('^[^\\\\\\/:*?\\"<>|]+$');// 转义 \ 符号也不行
    alert(reg.test("新建文件\\夹")); // 弹出 true
      

  3.   


    var reg = new RegExp('^[\\^/:*?"<>|]+$');// 转义 \ 符号也不行
    alert(reg.test("新建文\件夹"));这样也是可以的,不过我不知道什么原理。。
      

  4.   

    正则中 \ 是转义符,匹配一个 \ 字符,要在代码中写2个\。对吧
    在字符串中 \ 也同样是转义符,要输出一个 \ 字符,也是要在代码中写2个\
    new RegExp('\\\\')这条语句是先定义一个字符串,再用这个字符串来创建正则表达式对象,这就要进行两次转义。
    要这种情况下要匹配一个 \ 字符,就要在代码中写4个\。也就是“\\\\”
      

  5.   

    alert("新建文\件夹");//弹出 新建文件夹
    字符串中根本就没有 \ 字符,也就不存在什么正则匹配了
      

  6.   

    但是我的这个就不需要了,而且可以运行啊,为什么??var reg = new RegExp('^[\\^/:*?"<>|]+$');// 转义 \ 符号也不行
    alert(reg.test("新建文\件夹"));
      

  7.   

    alert("新建文\件夹");//弹出 新建文件夹
    字符串中根本就没有 \ 字符,也就不存在什么正则匹配了

    有点懂了,很感谢
      

  8.   

    但是我的这个就不需要了,而且可以运行啊,为什么??var reg = new RegExp('^[\\^/:*?"<>|]+$');// 转义 \ 符号也不行
    alert(reg.test("新建文\件夹"));
     \ 是转义符,“\件”会转义就“件”
    alert("新建文\件夹");//弹出 新建文件夹
    字符串中根本就没有 \ 字符,也就不存在什么正则匹配了
      

  9.   

    alert(reg.test("新建文件^\夹"));如果这样输出的话,返回的是true,为什么
      

  10.   


    var reg = new RegExp('^[^\\\\\\/:*?\\"<>|]+$');// 转义 \ 符号也不行
    alert(reg.test("新建文件^夹")); // 弹出 true这样子,他返回的就是true了。如果这样的话,就不通用了,那就需要做判断了啊。是吧