SyntaxError:用于验证本地文件路径的未终止括号

Tha*_*amy 2 javascript regex jquery

我必须验证本地文件夹路径,其格式如下:..\sentinel\log.

对于C:\ sentinel\log,我有旧的正则表达式(/[\w]:\.*/)).我需要接受这条道路.

我从regexplibrary得到以下表达

var pathRE = new RegExp("/^((../ | [a-zA-Z0-9 _/ - \])*.[a-zA-Z0-9])"); 错误:SyntaxError:未终止的括号

当我执行时抛出此错误

我附上了我尝试过的代码

function checkFolderpath(path) {
    try {
        //var pathRE = new RegExp(/[\w]:\\.*/);
        var pathRE = new RegExp("/^((\.\./|[a-zA-Z0-9_/\-\\])*\.[a-zA-Z0-9])");
        if (pathRE.test(path)) {
            $("#spanloggererror").html("");
            return true;
        }
        else {
            $("#spanloggererror").html(resx_Invalid_Loggerpath);
            valtemp = 1;
        }
        return false;
    }
    catch (err) {
        alert(err.Message);
    }
Run Code Online (Sandbox Code Playgroud)

请建议我如何解决这个问题.

编辑:

路径值:..\Sentinel\log

Poi*_*nty 5

您的正则表达式应该像这样构造:

var pathRE = /^((..\/|[a-zA-Z0-9_/-\\])*.[a-zA-Z0-9])/;
Run Code Online (Sandbox Code Playgroud)

您真正需要使用RegExp构造函数的唯一时间是动态地从单独的部分构建正则表达式./使用本机正则表达式语法时,必须小心在expression()中引用正斜杠字符.您不必在[ ]组内引用它们,但您需要加倍反斜杠.

该正则表达式将不匹配,..\what\ever因为它只在开始时查找正斜杠.它也不会匹配超过两个字符的终端文件名.我认为更好的是:

var pathRE = /^\.\.(?:\\[A-Za-z0-9_-]+)+/;
Run Code Online (Sandbox Code Playgroud)

对您期望的文件名字符进行适当的更改.