asp.net - YSOD 蓝屏死机 JavaScript RegExp - 语法错误

标签 asp.net javascript regex xmlhttprequest yellow-screen-of-death

我在 http://regextester.com 建立了这个正则表达式解析 YSOD 但 VS 提示语法错误。我确定我错过了某个地方的逃生,但我一片空白。

这是原始形式。任何帮助表示赞赏。

var rxYSOD = /<!--\s*\[(.*?)]:(\s*.*\s(.*\n)*?)\s*(at(.*\n)*)-->/gs;

更新: Kobi 指出了显而易见的事实,让我再次行动起来。对于那些感兴趣的人,这是有效的 JavaScript,用于测试和解析 XMLHttpRequest.responseText 以获得 ASP.net 蓝屏死机 (YSOD)。

var rxYSOD = /<!--\s*\[(.*?)]:(\s*.*\s(.*[\n\r]*)*?)\s*(at(.*[\n\r]*)*)-->/;
if (rxYSOD.test(text)) {
    // looks like one..
    var ysod = rxYSOD.exec(text);
    errObj = { Message: ysod[2], StackTrace: ysod[4], ExceptionType: ysod[1] };
}

@Kobi - 这就是结果,也是我想解析 html 的原因,即使我得到了 500:

{
 "message": " Unknown web method ValidateUser.\r\nParameter name: methodName\r\n",
 "stackTrace": "at System.Web.Script.Services.WebServiceData.GetMethodData(String methodName)\r\n   at System.Web.Script.Services.RestHandler.CreateHandler(WebServiceData webServiceData, String methodName)\r\n   at System.Web.Script.Services.RestHandler.CreateHandler(HttpContext context)\r\n   at System.Web.Script.Services.RestHandlerFactory.GetHandler(HttpContext context, String requestType, String url, String pathTranslated)\r\n   at System.Web.Script.Services.ScriptHandlerFactory.GetHandler(HttpContext context, String requestType, String url, String pathTranslated)\r\n   at System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig)\r\n   at System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()\r\n   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)\r\n",
 "exceptionType": "ArgumentException",
 "errorObject": {
  "Message": " Unknown web method ValidateUser.\r\nParameter name: methodName\r\n",
  "StackTrace": "at System.Web.Script.Services.WebServiceData.GetMethodData(String methodName)\r\n   at System.Web.Script.Services.RestHandler.CreateHandler(WebServiceData webServiceData, String methodName)\r\n   at System.Web.Script.Services.RestHandler.CreateHandler(HttpContext context)\r\n   at System.Web.Script.Services.RestHandlerFactory.GetHandler(HttpContext context, String requestType, String url, String pathTranslated)\r\n   at System.Web.Script.Services.ScriptHandlerFactory.GetHandler(HttpContext context, String requestType, String url, String pathTranslated)\r\n   at System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig)\r\n   at System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()\r\n   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)\r\n",
  "ExceptionType": "ArgumentException"
 },
 "statusCode": 500,
 "servicePath": "/Authentication_JSON_AppService.axd",
 "useGet": false,
 "params": {
  "username": "testingUser",
  "password": "testingUser",
  "customCredential": null
 },
 "methodName": "ValidateUser",
 "__typeName": "Salient.ScriptModel.WebServiceError"
}

最佳答案

Firefox 说:

Error: invalid regular expression flag s
Source Code:
var rxYSOD = /<!--\s*\[(.*?)]:(\s*.*\s(.*\n)*?)\s*(at(.*\n)*)-->/gs; 

删除 s 后似乎没问题(当然,它没有测试,只是正确解析)。

关于asp.net - YSOD 蓝屏死机 JavaScript RegExp - 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2350874/

相关文章:

javascript - 获取选中的输入复选框的 id 并添加到列表中

ASP.NET : A generic error occurred in GDI+

c# - 在 ASP.NET 中用户关闭浏览器时,Session 会释放内存吗?

javascript - .NET MVC/Javascript 从动态 HTML 转义单引号

javascript - 在 React js 中如何将映射转换为数组时进行连接?

php - 如何添加对小数点前 3 位正 float 的验证?

python - 如何提取给定键的值?

javascript - 访问 SSL 连接上使用的证书

javascript - 使用 jquery 更改文本颜色和大小

regex - 这个 Perl 正则表达式是什么意思 : m/(. *?) :(. *?)$/g?