首页 > 解决方案 > 用于正则表达式查找价格和检测货币的 JavaScript 函数

问题描述

我想创建一个 JavaScript 函数,它使用正则表达式从输入字符串中查找价格并检测价格的货币。

我要的格式是:

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

例如,如果输入字符串是“test $105.62 (29,867.80 bits) (29,897.90 bits) (29,827.14 bits) test”,则返回的对象将是:

{price: 105.62, type: '$'}

首先,该函数应该支持欧元、美元和英镑。它还需要支持以下货币格式:

所有这些都将被检测为:

{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}
}

标签: javascriptregexcurrency

解决方案


Stack Overflow 不是来为您编写代码的。如果您遇到问题并需要帮助,Stack Overflow 就在这里。举个例子,试着写一个这样的正则表达式,说明它在哪些情况下有效,在哪些情况下无效。如果这不能帮助您解决问题,请提出问题。

作为入门资源,我会向您介绍https://regex101.com/,它在解释您的正则表达式到底匹配什么以及您可以在哪里尝试不同的输入方面做得非常出色。您还可以保存包括输入在内的正则表达式,然后在遇到问题时将其附加到此处的问题中。

由于你是新手,我做了一个简单的例子,它涵盖了所有给定的例子:https ://regex101.com/r/cP5f94/1你仍然需要用它们构建一个 Javascript 对象并映射$USD,添加其他案例等。但它应该让你开始

祝你好运!


推荐阅读