Javascript Nodejs无效的regexp

Javascript Nodejs无效的regexp,javascript,regex,node.js,jsdoc,jsdoc3,Javascript,Regex,Node.js,Jsdoc,Jsdoc3,我运行以下命令: node_modules/.bin/jsdoc -r --destination /home/user/public_html/jsdoc-meta/ node_modules/jsdoc/ 这就是我得到的。我在正则表达式中找不到错误: /home/user/node_modules/jsdoc/lib/jsdoc/name.js:77 var regexp = new RegExp('^' + memberof.toString() + REGEXP_SCOPE_P

我运行以下命令:

node_modules/.bin/jsdoc -r --destination /home/user/public_html/jsdoc-meta/ node_modules/jsdoc/
这就是我得到的。我在正则表达式中找不到错误:

/home/user/node_modules/jsdoc/lib/jsdoc/name.js:77
    var regexp = new RegExp('^' + memberof.toString() + REGEXP_SCOPE_PUNC);
                 ^
SyntaxError: Invalid regular expression: /^harmonyTestFixture.ES6 Template Strings.`\u{000042}\u0042\x42\u0\102\A`[~,#,.]/: Unterminated character class
    at new RegExp (<anonymous>)
    at nameIsLongname (/home/user/node_modules/jsdoc/lib/jsdoc/name.js:77:18)
    at Object.exports.resolve (/home/user/node_modules/jsdoc/lib/jsdoc/name.js:114:21)
    at Doclet.postProcess (/home/user/node_modules/jsdoc/lib/jsdoc/doclet.js:171:20)
    at newSymbolDoclet (/home/user/node_modules/jsdoc/lib/jsdoc/src/handlers.js:190:23)
    at null.<anonymous> (/home/user/node_modules/jsdoc/lib/jsdoc/src/handlers.js:226:29)
    at EventEmitter.emit (events.js:98:17)
    at Visitor.visitNode (/home/user/node_modules/jsdoc/lib/jsdoc/src/visitor.js:283:16)
    at Visitor.visit (/home/user/node_modules/jsdoc/lib/jsdoc/src/visitor.js:177:27)
    at Walker.recurse (/home/user/node_modules/jsdoc/lib/jsdoc/src/walker.js:533:27)
/home/user/node\u modules/jsdoc/lib/jsdoc/name.js:77
var regexp=new regexp('^'+memberof.toString()+regexp\u SCOPE\u PUNC);
^
语法错误:无效的正则表达式:/^harmonyTestFixture.ES6模板字符串。`\u{000042}\u0042\x42\u0\102\A`[~,#,.]/:未终止字符类
在新的RegExp()中
在nameIsLongname(/home/user/node_modules/jsdoc/lib/jsdoc/name.js:77:18)
在Object.exports.resolve(/home/user/node_modules/jsdoc/lib/jsdoc/name.js:114:21)
在Doclet.postProcess(/home/user/node_modules/jsdoc/lib/jsdoc/Doclet.js:171:20)
在newSymbolDoclet(/home/user/node_modules/jsdoc/lib/jsdoc/src/handlers.js:190:23)
在空。(/home/user/node_modules/jsdoc/lib/jsdoc/src/handlers.js:226:29)
在EventEmitter.emit(events.js:98:17)
在Visitor.visitNode(/home/user/node_modules/jsdoc/lib/jsdoc/src/Visitor.js:283:16)
在Visitor.visit(/home/user/node_modules/jsdoc/lib/jsdoc/src/Visitor.js:177:27)
在Walker.recurse(/home/user/node_modules/jsdoc/lib/jsdoc/src/Walker.js:533:27)
节点(或者更确切地说是V8)尝试将其解析为UTF8转义序列:

/^harmonyTestFixture.ES6 Template Strings.`\u{000042}\u0042\x42\u0\102\A`[~,#,.]/
                                                                ^^^^^^
但是,由于
\u0
102
之间存在反斜杠,因此会出现错误消息(
未终止字符类
)。根据您试图实现的目标,您可以删除该反斜杠:

/^harmonyTestFixture.ES6 Template Strings.`\u{000042}\u0042\x42\u0102\A`[~,#,.]/
                                                                  ^
/^harmonyTestFixture.ES6 Template Strings.`\u\{000042\}\u0042\x42\u0\\102\A`[~,#,.]/
                                                                    ^^
或者避开反斜杠:

/^harmonyTestFixture.ES6 Template Strings.`\u{000042}\u0042\x42\u0102\A`[~,#,.]/
                                                                  ^
/^harmonyTestFixture.ES6 Template Strings.`\u\{000042\}\u0042\x42\u0\\102\A`[~,#,.]/
                                                                    ^^

它应该是
^harmonyTestFixture.ES6模板字符串。\\u{000042}\u0042\x42\\u0\102\A[~,#,.]
escape
\u
chracter。您想实现什么?我将源代码改为灰色,找到了非常有意义的“\\u{000042}\\u0042\\x42\\u0\\102\\A`。也许这是一个错误,所有的反斜杠都需要双重转义?我不知道为什么这些在Jsdoc中的位置,但我最终注释掉了测试,并通过了。很高兴你能修复它。