Я пытаюсь сгенерировать код JavaScript, похожий на этот
function ParseJsonDate(input) {
var tmp = +input.replace(/\/Date\((-?\d+)\)\//, '$1');
jsonDate = new Date(tmp);
return jsonDate;
}
В Script # я написал это:
public static Date ParseJsonDate(string input)
{
string pattern = @"/\/Date\((-?\d+)\)\//".Unescape();
RegularExpression regex = new RegularExpression(pattern);
string tmp = input.ReplaceRegex(regex, "$1");
Number milliseconds = Number.Parse(tmp);
Date jsonDate = new Date(milliseconds);
return jsonDate;
}
Что компилируется в это:
StringFunctions.parseJsonDate = function StringFunctions$parseJsonDate(input) {
/// <param name="input" type="String">
/// </param>
/// <returns type="Date"></returns>
var pattern = unescape('/\\/Date\\((-?\\d+)\\)\\//');
var regex = new RegExp(pattern);
var tmp = input.replace(regex, '$1');
var milliseconds = Number.parse(tmp);
var jsonDate = new Date(milliseconds);
return jsonDate;
}
Это выглядит хорошо, но когда я прохожу через него с помощью отладчика, объект RegExp, который создается из неэкранированной строки, совершенно другой.
Есть идеи?