简单地说,我正试图从多行字符串中读取第2行(和第3行等)。 Javascript中有没有办法从error.stack输出中提取文件名和行号?例如,在下面的代码示例中,请参阅第二行,我想在括号内获取值(CampaignController.js:229:30)。
TypeError: Cannot read property 'getSampleData' of undefined
at proto.constructor.getFunctionName (http://clientservices.local:44085/sample/controllers/CampaignController.js:229:30)
at proto.constructor.r [as getFunctionName] (http://clientservices.local:44085/sample/lib/lodash/lodash.min-v3.9.3.js:25:494)
at proto.constructor.showModal (http://clientservices.local:44085/sample/controllers/CampaignController.js:116:30)
at proto.constructor.r [as showModal] (http://clientservices.local:44085/sample/lib/lodash/lodash.min-v3.9.3.js:25:494)
at http://clientservices.local:44085/sample/controllers/CampaignController.js:1268:22
我这样做是为了创建一个服务器日志,它将所有与UI相关的异常发送到我的服务器。我需要附上文件名和行号等信息。
我能够将这个字符串(下面的代码)分配给变量(var errorStackString = error.stack
),但我不知道如何在字符串落入新行时提取它们的部分内容。我正在寻找正则表达式来做到这一点。但到目前为止我所得到的只是第一行(我可以直接使用error.message
)
此外,我了解这可以使用error.fileName
,error.columnNumber
等完成,但目前仅适用于Firefox。我想在Chrome上获取fileNames,columnNames。见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error