Javascript возвращает указанное целое c целое число в строке при удалении остальных - PullRequest
0 голосов
/ 01 мая 2020

У меня есть URL-запрос, который, например, выглядит следующим образом после decodeURIComponent ["pcs_availability:Online", "price:[1500 TO 1999.99]"] результатов, которые мне нужны, это "1999.99".

Сейчас у меня есть

const query = ["pcs_availability:Online", "price:[1500 TO 1999.99]"]
const price = query.find((item) => item.match("price")).split(/::|:/)[1].split(" ")[2].replace("]", "");

Что возвращает мне 1999.99, и это то, чего я хочу, но мне было интересно, есть ли лучший способ сделать это вместо этого. К сожалению, я не могу изменить структуру запроса, поэтому мне приходится работать с этим.

1 Ответ

2 голосов
/ 01 мая 2020

Я считаю, что проще использовать регулярное выражение с группой захвата.

const pattern = /^price:{1,2}\[.*? TO (.*?)]$/;
const price = query
  .map(q => {
    const match = pattern.exec(q);
    return (match && match[1]) || null;
  })
  .find(maybePrice => maybePrice !== null);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...