У меня есть эта строка:
[{"COUNT(post_id)":"2"}][{"COUNT(post_id)":"1"}][{"COUNT(post_id)":"2"}]
Как я могу извлечь "2", "1", "2" и поместить их в массив с помощью JavaScript?
"2", "1", "2"
не чистый способ, но попробуйте на линии
var str = '[{"COUNT(post_id)":"2"}][{"COUNT(post_id)":"1"}][{"COUNT(post_id)":"2"}]'; var res = str.split('[{"COUNT(post_id)":"'); var res1 = res.toString(); var res3 = res1.split('"}]'); var res4 = res3.toString().split(',,'); document.write(res4);
Вот несколько полезных ресурсов: https://regexr.com/ https://github.com/ziishaned/learn-regex
console.log( '[{"COUNT(post_id)":"2"}][{"COUNT(post_id)":"1"}][{"COUNT(post_id)":"2"}]' .match(/\d+/g) );
(предполагается, что каждое число представляет собой одну цифру)
Ради указания на плохой код ... Я написал следующее как "забавное" обновление, чтобы показать ответ @ Anupam ниже. Он злоупотребляет некоторыми вещами ... и я предпочитаю решение регулярных выражений.
console.log( '[{"COUNT(post_id)":"2"}][{"COUNT(post_id)":"1"}][{"COUNT(post_id)":"2"}]' .split('[{"COUNT(post_id)":"') .map(function(x) { return parseInt(x); }) .filter(isFinite) );