Функция JavaScript для регулярного поиска цен и определения валюты - PullRequest
0 голосов
/ 21 января 2019

Я хотел бы создать функцию JavaScript, которая использует Regex для поиска цен по входной строке и определяет валюту цены.

Формат, который я собираюсь использовать:

function handleCurrency (string) {  
    // ...
    return {price: ..., type: ...} 
}

Например, если входная строка имеет вид «проверить $ 105,62 (29 867,80 бит) (29 897,90 бит) (29 827,14 бит) тест»)возвращаемый объект будет:

{price: 105.62, type: '$'}

Для начала функция должна поддерживать евро, доллары и фунты.Также необходимо будет поддерживать следующие форматы валют:

  • $ 100,00
  • (28 278,54 бит) (28 307,04 бит) $ 100,00
  • $ 100,00 (28 278,54 бит) (28 307,04)биты) USD
  • $ 100,00 USD
  • 100,00 USD
  • 100,00 $
  • и т. д.

Все это будетопределяется как:

{price: 100, type: 'USD'}

Заранее спасибо!

Редактировать: Я написал функцию, которая решает мой вопрос.Спасибо за помощь!

function handleCurrency (string) {
    let filter = input
    filter = filter.replace(/USD/g,'$')
    filter = filter.replace(/EUR/g,'€')
    filter = filter.replace(/GBD/g,'£')
    filter = filter.replace(/(?<!\d)\.(?!\d)/g, '')
    filter = filter.replace(/[^\$\€\£\d\.]/g,'')

    let price = filter
    price = price.replace(/[^\d\.]/g,'')
    price *= 1

    let type = filter
    type = type.replace(/[^\$\€\£]/g,'')
    type = type[0]

    return {price: price, type: type}
}

Ответы [ 2 ]

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

Пожалуйста, сначала попытайтесь решить проблему, и если вы все еще не можете ее решить, спросите.Надеюсь это поможет.Используйте https://regexr.com/, чтобы создавать регулярные выражения, и кодовую ручку для проверки кода.

function findCurrency (string) {  
    let text = string.match('(\$)? ?([0-9.]+)(?: ?(USD))?');
  let curr;
  if(text[0]=='$' || text[2]=='USD')
    curr = 'USD'
  return {price: text[1], currencyType: ...} 
}
0 голосов
/ 21 января 2019

Переполнение стека здесь не для того, чтобы писать код для вас. Переполнение стека здесь, если вы застряли на проблеме и нуждаетесь в помощи. В качестве примера попробуйте написать такое регулярное выражение, укажите, в каких случаях оно работает, а в каких - нет. Если это не поможет вам разобраться, задайте вопрос.

В качестве ресурса для начала я бы указал на https://regex101.com/, который делает потрясающую работу по объяснению того, что именно соответствует вашему регулярному выражению и где вы можете экспериментировать с различными входными данными. Вы также можете сохранить свое регулярное выражение, включая ввод, а затем прикрепить его к вопросу здесь, если вы застряли.

Поскольку вы новичок, я сделал быстрый пример, который перехватывает все приведенные примеры: https://regex101.com/r/cP5f94/1 вам все еще нужно построить объект Javascript с ними и сопоставить $ с USD, добавить дополнительные случаи, т. д. но это должно начать вас

Удачи!

...