RegExp.prototype.exec()似乎不起作用

时间:2019-05-03 01:48:00

标签: javascript node.js regex

const fs = require('fs')

const jsdocFinder = /\/\*\*\n(.+?)\*\//gs
/**
 * Convert JSDocs from a file into JSON.
 * @function
 * @param    {String[]|String} dirs The directory or directories of the file(s) to convert.
 */
function interpret (dirs = []) {
  if (typeof dir === 'string') dirs = [dirs]
  const types = {}

  for (const dir of dirs) {
    const file = fs.readFileSync(dir, 'utf8')
    const docs = jsdocFinder.exec(file)

    console.log(docs)
  }

  return types
}

module.exports = interpret

这是我的函数代码,该函数应该将JSDocs转换为JSON数据。在for循环中,我使用正则表达式捕获/**\n*/之间的所有文本。不幸的是,它似乎无法处理这些文件。我已经记录了file等于什么,它应该匹配。我已经测试过Regex,它应该可以正常工作。

https://i.imgur.com/2FlmeBq.png

docs每次等于null

1 个答案:

答案 0 :(得分:0)

我发现,由于Windows使用CR LF,因此我需要执行\r\n