我们有一个在开发过程中写到屏幕上的javascript堆栈跟踪。

 (OurCustom.js?635095252297740283:14:29)
    at jquery-1.8.3.min.js?634937263102341783:2:11602
    at Function.v.extend.map (jquery-1.8.3.min.js?634937263102341783:2:15448)


我正在尝试从中替换最后两个冒号

(OurCustom.js?635095252297740283:14:29)




(OurCustom.js?635095252297740283 line 14 pos 29)


我的尝试不起作用。什么都没有取代。

stackMessage = stackMessage.replace(/_(:\d*)(:\d*)_/g, "line $1 pos $2");


编辑:顺便说一句,这就是我获取堆栈跟踪的方式。 (答案正确)

catch (err)
{
    var stackMessage = (err.stack || err.stacktrace || "")
                       .replace(/:(\d*):(\d*)/g, " line $1 pos $2");
...
{

最佳答案

问题出在正则表达式中的那些下划线。你应该用

stackMessage = stackMessage.replace(/:(\d*):(\d*)/g, " line $1 pos $2")

10-07 15:53
查看更多