В мире javascript начинается месяц с нуля! что-то странное для меня. Во всяком случае, 9 не сентябрь, а 9 - октябрь.
Двойная косая черта "\\ d" вызывает проблему.
Перед разбором jsonString попробуйте заменить их следующим образом:
var jsonString ="{\"elements\": [{\"bindingParams\": \"return field.innerHTML.match(/\\d+/gi).toString();\n\"}]}";
jsonString = jsonString .Replace("\\", "\\\\"); // <=== this line
var o = JObject.Parse(jsonString); // This works !
Я обнаружил, что проблема заключалась в том, что я пытался скрыть уже не спасенную строку.
field.Value<string>()
уже экранирует строку. Таким образом, решением моей проблемы было просто не вызывать Regex.Unescape
и использовать значение напрямую.
К сожалению.