如何在javascript中为文件夹名称创建正则表达式?

如何在javascript中为文件夹名称创建正则表达式?,javascript,jquery,regex,validation,Javascript,Jquery,Regex,Validation,我想验证文件夹名称,它不应该以数字或任何特殊字符开头,我不确定文件夹名称中允许使用什么特殊符号,请帮助 这是我的功能 function validateFileName() { var re = /[^a-zA-Z0-9\-]/; if(!re.test($('#new_folder_name').value)) { alert("Error: Input contains invalid characters!"); $('#ne

我想验证文件夹名称,它不应该以数字或任何特殊字符开头,我不确定文件夹名称中允许使用什么特殊符号,请帮助

这是我的功能

function validateFileName() { 
    var re = /[^a-zA-Z0-9\-]/;

      if(!re.test($('#new_folder_name').value)) {
          alert("Error: Input contains invalid characters!");
          $('#new_folder_name').focus();
          return false;
        }

        // validation was successful
        return true;
      }

只需检查文件夹名称是否以字母开头,而不是以开头(点)

只有当文件夹名称以字母开头时,才会返回true。

在C#中,有一个函数返回。还列出了一些不能同时在文件夹名和文件名中使用的保留字符。以下是涵盖所有这些限制的正则表达式:

var RealInvalidPathChars = /[<>:"\/\\|?*\x00-\x1F]/;
如果此正则表达式检查返回true,则路径无效

以下是一个结合了所有这些因素的片段:

$(“#新文件夹_名称”).submit(函数(事件){
变量rx=/[:“\/\\\\\\\?*\x00-\x1F]| ^(?:aux | con | clock\$| nul | prn | com[1-9]| lpt[1-9])$/i;
if(rx.test($(“输入:first”).val()){
警报(“错误:输入包含无效字符!”);
}
});

根据

保留以下特殊字符:

< (less than)
> (greater than)
: (colon)
" (double quote)
/ (forward slash)
\ (backslash)
| (vertical bar or pipe)
? (question mark)
* (asterisk)
这些都是有说服力的

因此,考虑到这些事实,可能的正则表达式可以是:

[^<>:"/\|?*(?:aux|con|nul|prn|com[1-9]|lpt[1-9])]
[^:“/\?*(?:aux | con | nul | prn | com[1-9]| lpt[1-9])]
因此,转换后的函数将是

function validateFileName() { 
    var re = /[^<>:"/\|?*(?:aux|con|nul|prn|com[1-9]|lpt[1-9])]/;

      if(!re.test($('#new_folder_name').value)) {
          alert("Error: Input contains invalid characters!");
          $('#new_folder_name').focus();
          return false;
        }

        // validation was successful
        return true;
      }
函数validateFileName(){
var re=/[^:“/\\\\?*(?:aux | con | nul | prn | com[1-9]| lpt[1-9])/;
if(!re.test($('#新文件夹名称').value)){
警报(“错误:输入包含无效字符!”);
$(“#新的_文件夹_名称”).focus();
返回false;
}
//验证成功
返回true;
}


您验证文件夹的目的是什么?您知道哪些操作系统正在运行的服务器可以判断哪些操作系统是有效的,或者您的客户端计算机知道哪些操作系统是有效的?您可以在此处找到有关哪些字符不合法使用的信息我正在创建一个新文件夹,我希望对该文件夹名称进行验证,以便用户无法输入恶意的密码提供文件夹名称时,我不知道如何操作“文件夹名称中允许使用哪些特殊符号?”“-这取决于您使用的文件系统。文件夹的名称取决于您使用的文件系统。每个操作系统都有不同的文件系统。因此,在验证之前,您必须考虑操作系统和文件系统的条件。除此之外,文件系统本身会检查名称是否有效,并且您仍然会收到无效文件夹名称的异常。因此,处理异常并将其显示给用户。在我的情况下不起作用。它使用带有字母和特殊符号的名称,这是不允许作为任何文件或文件夹的名称的。您可以给出一些示例文件名吗?我将用一个regext来表示这些不是文件名,这些是文件夹名,例如,您使用windows作为操作系统,您可以提供文件夹名为“newfolder”、“newfolder”、“new/folder”等,它可以有空格和、-,等等作为符号,但我们不能在windows中提供以数字或某些特殊字符开头的名称*(?:aux | con | nul | prn | com[1-9]| lpt[1-9])]/是否无效我不确定我是否正确:您还需要验证文件名吗?我以为您只需要验证文件夹路径。我刚刚修复了正则表达式并添加了保留字支持。谢谢您的回答,但我只是说在windows操作系统中为新创建的文件夹提供名称。您说的是文件夹路径h Validation我相信这是一样的。我已经更新了正则表达式,使其不允许所有保留字符。如果您想允许在“创建目录”对话框中输入任何字符串,则规则有点不同。
new/folder
将创建一个文件夹
new
,其中包含一个子文件夹
folder
。然后我们需要排除不允许使用的符号。你说我们不能在windows中提供以数字或某些特殊字符开头的名称,但文件夹可以以数字开头。某些特殊字符是保留字符列表中列出的字符,它们不能出现在名称中的任何位置。我基本上使用mac os进行开发,我尝试过这样做g mac中的新文件夹以u和数字开头,中间使用特殊符号,如?,>,<,},{,[,]所有这些符号在mac上都是允许的,所以我对windows不是很确定,你帮助我了解了这一点:)很高兴知道我能帮上忙。请考虑接受和投票的答案。我已经在C代码中测试了目录创建,看起来我的正则表达式捕获了所有有问题的案例。如果你想让强制目录使用<代码> /<代码>,把它从字符类中删除。它对我起作用,但不是我想要的I。要限制以任何特殊字符或数字开头的文件夹名称,但它没有这样做。如何,它只允许一个字母出现在开头。我不确定它是否限制。<,>,:,“,/,\,|,,?,*这些符号,如何在提供名称的同时限制所有这些符号??ya,上面的正则表达式不允许这些字符在开始时出现。
[a-zA-Z]
只允许字母。
CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9. 
[^<>:"/\|?*(?:aux|con|nul|prn|com[1-9]|lpt[1-9])]
function validateFileName() { 
    var re = /[^<>:"/\|?*(?:aux|con|nul|prn|com[1-9]|lpt[1-9])]/;

      if(!re.test($('#new_folder_name').value)) {
          alert("Error: Input contains invalid characters!");
          $('#new_folder_name').focus();
          return false;
        }

        // validation was successful
        return true;
      }