Недопустимая функция, связанная выше. Он не может избежать ^
или $
(начало и конец строки) или -
, которые в группе символов используются для диапазонов.
Используйте эту функцию:
RegExp.escape= function(s) {
return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
};
Хотя на первый взгляд может показаться ненужным, экранирование -
(а также ^
) делает функцию, подходящую для экранирования символов, вставляться в класс символов, а также тело регулярного выражения.
Escaping /
делает функцию подходящей для экранирующих символов, которые будут использоваться в литеральном выражении JS для последующего eval.
Поскольку нет недостатка для экранирования любого из них, имеет смысл
И да, неутешительно, что это не является частью стандартного JavaScript.
Вы должны иметь возможность передавать данные, как описано в следующих сообщениях или что-то подобное. Это должно помочь с проблемами с памятью. Как проанализировать огромный JSON-файл как поток в Json.NET?, Разбор большого json-файла в .NET
Хорошо, noSql не будет работать для вас, но здесь я нашел другое решение, которое вы могли бы использовать.
Вставьте файлы в sql db, тогда вы сможете просто выбрать для них статистику.
Вот один из способов сделать это
-- Load file contents into a variable
SELECT @json = BulkColumn
FROM OPENROWSET (BULK 'C:\JSON\Books\book.json', SINGLE_CLOB) as j
-- Load file contents into a table
SELECT BulkColumn
INTO #temp
FROM OPENROWSET (BULK 'C:\JSON\Books\book.json', SINGLE_CLOB) as j
И использовать Json_Value для чтения
SELECT FirstName, LastName,
JSON_VALUE(jsonInfo,'$.info.address[0].town') AS Town
FROM #temp
WHERE JSON_VALUE(jsonInfo,'$.info.address[0].state') LIKE 'US%'
ORDER BY JSON_VALUE(jsonInfo,'$.info.address[0].town')
Вот как можно импортировать файлы json
А вот как сделать, где в них сидит.
https://docs.microsoft.com/en-us/sql/t-sql/functions/json-value-transact-sql?view=sql-server-2017