Как я могу извлечь числовые символы из строки и поместить их в массив? - PullRequest
0 голосов
/ 06 января 2019

У меня есть эта строка:

[{"COUNT(post_id)":"2"}][{"COUNT(post_id)":"1"}][{"COUNT(post_id)":"2"}]

Как я могу извлечь "2", "1", "2" и поместить их в массив с помощью JavaScript?

Ответы [ 2 ]

0 голосов
/ 07 января 2019

не чистый способ, но попробуйте на линии

    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);
0 голосов
/ 06 января 2019

Вот несколько полезных ресурсов: 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)
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...