语法错误:用于验证本地文件路径的未终止括号

SyntaxError: unterminated parenthetical for validating the local file path

本文关键字:路径 终止 文件 错误 用于 验证 语法      更新时间:2023-09-26

我必须验证以下格式的本地文件夹路径:''哨兵''日志 .

我有用于 C:''sentinel''log 的旧正则表达式 (/[''w]:''.*/)),并且正在工作。我需要接受这条路。

我有以下来自正则表达式库的解释

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

当我执行时抛出此错误

我正在附加我尝试过的代码

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);
    }

请建议我如何解决问题。

编辑:

路径的值 : ..''Sentinel''log

正则表达式应按如下方式构造:

var pathRE = /^((..'/|[a-zA-Z0-9_/-''])*.[a-zA-Z0-9])/;

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

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

var pathRE = /^'.'.(?:''[A-Za-z0-9_-]+)+/;

对所需的文件名字符进行适当的更改。

转义斜杠:

/^(('.'./|[a-zA-Z0-9_'/'-''])*'.[a-zA-Z0-9])/
//          here   __^   and    add slash __^