YSOD Желтый экран смерти JavaScript RegExp — синтаксическая ошибка

Я создал это регулярное выражение на http://regextester.com для разбора YSOD, но VS жалуется на синтаксическую ошибку. Я уверен, что мне где-то не хватает побега, но я ничего не понимаю.

Вот в оригинале. любая помощь приветствуется.

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

ОБНОВЛЕНИЕ: Коби указал на очевидное и заставил меня двигаться дальше. Для тех, кто заинтересован, это допустимый 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"
}

person Sky Sanders    schedule 28.02.2010    source источник
comment
Вы также не получите код состояния 500 Internal Server Error для этих экранов? В любом случае, удачи!   -  person Kobi    schedule 28.02.2010
comment
@Коби, да, конечно. вот почему я разбираю страницу, поскольку она имеет фактическое исключение. Нет ничего хуже, чем я ненавижу сообщение об исключении, когда информация действительно доступна.   -  person Sky Sanders    schedule 28.02.2010


Ответы (2)


Фаерфокс говорит:

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

После удаления s вроде всё в порядке (конечно, не проверял, просто правильно разобрал).

person Kobi    schedule 28.02.2010
comment
благодаря. это одна из тех поздних ночей, когда мое понимание очевидного вытекает из моего уха около полуночи. - person Sky Sanders; 28.02.2010
comment
р.э. CTRL+SHFT+J — да, я использую его достаточно часто. Я работаю над большим количеством кода javascript intellisense... - person Sky Sanders; 28.02.2010
comment
ой, снова демонстрирую свое невежество - теперь я понимаю, что вы говорите о консоли FF err. Спасибо. - person Sky Sanders; 28.02.2010
comment
Без проблем, рад помочь. Теперь сделайте небольшой перерыв. Это на мне :) - person Kobi; 28.02.2010

Флаг s недействителен в Javascript. Для замены используйте метод replace.

person Mark Byers    schedule 28.02.2010
comment
спасибо, Марк. вы правы, но не пытается заменить, просто соответствует. Коби тоже попался. - person Sky Sanders; 28.02.2010