日期:2014-05-16  浏览次数:20389 次

正则验证文件夹名称
Winodws的文件夹是不能包含   \/:*?"<>|    这几个符号的。
我想用js验证文件夹名称

var reg = new RegExp('^[^\/:*?"<>|]+$');
alert(reg.test("新建文件|夹")); // 除了 \ 符号外,都没问题。但是就是匹配不了 \ 符号



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


请问这个正则要怎么写?
JavaScript 正则 文件夹名称 文件夹 斜杠

------解决方案--------------------

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

------解决方案--------------------
引用:

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


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