0

次のコマンドを実行します。

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)
4

1 に答える 1

1

ノード (またはむしろ V8) は、これを UTF8 エスケープ シーケンスとして解析しようとします。

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

ただし、\u0と の間にバックスラッシュがある102ため、文字が欠落しているため、エラー メッセージ ( Unterminated character class) が表示されます。達成しようとしていることに応じて、そのバックスラッシュを削除できます。

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

またはバックスラッシュをエスケープします。

/^harmonyTestFixture.ES6 Template Strings.`\u\{000042\}\u0042\x42\u0\\102\A`[~,#,.]/
                                                                    ^^
于 2014-07-22T20:52:58.043 に答える